

How should I decide on learning front-end vs back-end development? - markzuckerwho

Hi HN,<p>So here's the quick story. For the longest time I have wanted to build this idea that I had, so finally instead of looking for a dev I decided to learn how to code -- turns out I kind of enjoy it.<p>I have been using Codecademy (don't hate, it's actually good) and thus far have completed the Web Fundamentals (HTML, CSS) track, and am 50% done with the JavaScript Fundamentals track. My question is, where do I go once I'm done with these courses? I'm only 16, so I can see the potential to get a job in this field, but I don't know if I should do back-end or front-end. Do I just need to try a back-end language and decide what's for me? Are there enough jobs available for front-end designers/engineers if I went that direction? If I wanted to do front-end, what languages/libraries should I learn, and vice versa for back-end?
======
jfaucett
You asked frontend or backend so I'll give you my answer, but this just comes
from my personal experience over the past 10 years as a software developer,
nonetheless I think its fairly true for the industry at large and will be for
some time to come. The short of it - do backend. Why? Basically, if you know
Software Design patterns, Java, C(++), a server side scripting language or two
like Ruby or PHP, in tandem with some Frameworks, you can always get a Job -
at least in my experience. I've lived and worked on several continents (US,
South America, Europe) making software and its always been very easy for me to
get a Job (my language skillset is C/C++/Java, Ruby/Jruby, and Javascript). I
have collegues and friends that are frontend/UI designers and though they also
always tend to be able to find jobs its not as easy because the demand is
lower.

To go about learning "backend" I'd say start with c and java. Knowing c will
force you to understand how your computer works at a very low level, and java
will give you a solid understanding of object orientied programming and
software design patterns. Stick with javascript too, because its only getting
more important and you can do both Backend and frontend with it - also for
someone starting out I think its a really easy language. I wouldn't say learn
such and such framework, just read lots of source code and build you own apps,
and make sure you're having fun and know you'll always keep learning.

Lots of luck!

------
orrenkt
I started learning to code more seriously about 6mo ago, so I know what your
shoes feel like :)

There is simply a ton of stuff out there, and following a 3 year plan to cover
15 different languages and frameworks just seems intimidating as hell. Though
I agree that it's all important.

My advice it to come up with a simple project idea and go and implement it -
it doesn't even have to be a 'product' per se, just something fun that will
function as a goal for you to work towards. As an example, my first project
was making a simple twitter-like feed where you can make posts on a page, they
go to a database, and then come back out on the front end dynamically. This
might take a great hacker 20min to make, but I think it's a great first
project because it lets you see and really visualize how the
database<->server<->browser loop works. And I think getting the concepts
driving things is really the key.

Another great idea is to pick some web service you love that has an API and
try to build something fun with it - start with just figuring out how to make
a GET request, parse the response, etc, and then build up from there.

CodeAcademy is fun and great to start with, but I think because the problems
are all structured for you, it shelters you from having to do the most
important thing - figure out what you need to know to solve your problem, and
how to learn it. If you pick a small project and spend a lot of time on google
and stackoverflow trying to find out how to get each step to work, you'll
learn a ton, but you'll also learn how to become really resourceful when
you're trying to solve a problem. And as for what languages to learn, I think
the cool thing is your project will end up driving what you have to (and want
to) learn.

I'd also add, as an aside: you're 16, so stop worrying about jobs!! Just do
stuff that's fun and keep learning, and it'll all work out.

------
Sharma
Jobs are plenty for both BE or FE.

For back-end, read an overview of Python/Django and Ruby/Rails syntax and how
these work and then analyse which one you can understand intuitively.

Whichever language/framework you choose get in to the lower level details and
you will master the things.

For FE, after HTML/CSS start with Graphic/Logo designing(With Photoshop/GIMP
or wait for thanksgiving and you will get lots of deals on Adobe products) and
UX principles.Again see if these things come to you naturally.

After doing little bit of both you should be able to decide yourself which
one(FE/BE) is better for you.

All the best!!

------
ChuckMcM
Why choose? Its not like its not possible to understand the full stack and
you've not even gotten to and age where most folks would be starting college.
Work through the various web frameworks (Bootstrap, Node, Django, Rails, ...),
then look at the API systems that people have setup, then move on to Varnish /
Nginx / Apache followed by CGI scripting, databases, and Python / Perl / Go /
Java back ends. Should be able to get to all of that by the time you're 19
maybe 20. Follow what ever is the most fun / engaging / thrilling.

~~~
orangethirty
Like ChuckMcM, do/learn everything. Why? Because once you start learning you
will realize how everything seems to look alike. For me front end is a lot
like back end in terms of structure and organization. Messy code can exist in
both sides. Plus setting up a server is no harder than learning a framework
API, it just requires that you do it. That's it. I would also add that you go
and learn some embedded stuff like the arduino. It will really open up your
mind to hardware and allow you to understand what is behind the software. I
started when I was very young (bit younger than you), and wasn't comfortable
coding until years had passed. But once I reached a given point in skills I
realized that there were no limits as to what I could build. You will achieve
the same if you don't quit.

Good luck.

------
dreamdu5t
Learn both. I did. Just build a freakin' website and don't stop learning.

