
Ask HN: Why learn a back-end stack? - ezal
I am 30, and working in a call center. I think there is no future in this job. So I am looking for a change in career. I have no previous experience in programming. I like building and working on new ideas. So I want to learn coding. Is coding right choice? What do you suggest me starting from?
======
foo101
You are going to receive many suggestions and many words of advice in this
thread. Here is mine, so that you can consider this as well while making your
final decision.

\- Coding is a good choice but like any profession, it has its pros and cons.
Pros could be immense job satisfaction in creating something that has a
tangible effect on the world. Cons could be having to work for terrible
managers that could turn a fantastic job into a very depressing one.

\- I suggest you start with Python and Django. Complete the Python Tutorial.
Complete the Django Tutorial. With these two under your belt, you could apply
for entry level Python-based web development roles.

~~~
nf05papsjfVbc
I second this. Python is an easy language for beginners and getting your foot
in the door opens other possibilities for you later. Just start with something
and keep at it until you land a coding position somewhere.

------
pritambarhate
Coding is the right choice if you have a passion for it. If you don't have CS
background, then for self-learning you will need a lot of dedication.
Generally, for all popular languages, you will find free video tutorials on
YouTube. If you don't mind paying a little, then Udemy also has very good set
of tutorials. Be ready to put one solid year of effort into it though.

As a first step learn one language well. I would suggest one of:

1\. Javascript: Runs everywhere. You can make Mobile, Web and Backend
applications in it.

2\. C# and .Net Platform: You can make Mobile, Web and Backend applications in
it.

3\. Java: A solid choice for Backend and Android apps.

4\. Python: Good choice for backend and machine learning.

~~~
gremlinsinc
I wouldn't say js runs everywhere... If you're getting started out it's
possible they might use shared hosting instead of roll a VPS..so while
js/jquery will work everywhere... NODE/JS as a backend won't unless nodejs is
installed.

However PHP + Jquery is a good option and it DOES literally work everywhere..
I've run laravel from shared hosting... wanted to kill myself and can't run
everything like using a redis cache...

You can also use laravel for backend, frontend, and mobile (as an api). A good
mix is laravel api + cordova or ionicframework for the mobile part.

------
peterwwillis
Coding is a good way to build things and work on new ideas, but certainly not
the only way. And you can make as much or more money in a field that does not
require as much knowledge or skill. DBAs, system administrators, network
engineers, and other fields allow you to work on problems and make a living
without having to immerse yourself in complicated languages and years of
studying different solutions to problems.

~~~
johnpython
It is being asked from sysadmins and network engineers to be able to code in
at least 1 language (typically Python or Ruby).

------
rf15
>Is coding right choice?

"Coding" is always the right choice. Some people might even say that not being
able to code is a form of illiteracy in the modern, computer-dependent world.
That doesn't mean that you should solely focus on programming and disregard
all other skills (like a linguist?), but coding combined with other skills and
knowledge brings us the seemingly wondrous stuff we use every day.

If you are going to do it professionally, you will likely never truly struggle
with finding a job, though job satisfaction may vary depending on
management/perceived impact.

>I like building and working on new ideas.

This is the right attitude - if combined with persistance. Remember also that
programming in itself is mostly defined by not knowing something and having to
google it.

You are probably best off by first working your way into a language with a
hello-world tutorial or two, followed by checking smaller code-challenges
(Advent of Code, or just a list of "Common Coding Interview Questions") to get
a more moderate in-depth view on things and topics to check out. (and also get
into the problem-solving mindset)

Afterwards (or alternatively), try to come up with something moderately small
that you want to code yourself but don't know how to do (e.g. a small
calculator employing native UI?) and research your way through it.

Overall, I recommend against trying to memorise every little thing you learn
upfront - there's more things that can be known than the human mind has
capacity for, and you will have to face the more common concepts/problems
often enough that you learn them anyways due to natural repetition or because
you are annoyed that you have to look them up constantly. (e.g. binary and hex
numbers, logic operators/gates, etc.)

------
tarunkotia
Given you are interested in working on new ideas, it seems like you are
looking at programming from entrepreneurial point of view. If that's true,
focus on the problem you want to solve and then pick up tools along the way.
Programming is a great skill to have and will go a long way.

If you are looking at programming to gain employment then probably I would
pick up data analysis within customer support domain rather than software
development at this point in your career. Your employment prospects will
improve many folds if you are able to perform data analysis providing industry
insight having worked in the industry. Don't throw away your experience, use
it for operational analytics.

------
titodini
I tried learning backend over the summer and it confused the shit out of me.
If you're a beginner I suggest you check out
[https://www.turbo360.co](https://www.turbo360.co) since that's what I've been
using to start. The guy who runs it posts a lot of tutorials on how to make
sites with complicated backends, so learn that and once you've got the hang of
it you can go on the more complicated programming

------
matchmike1313
Way to go on wanting to embark and double down on a new path! I love coding
and although it will be a hard choice I think it will be a good one. I feel
that back-end or front-end for web would be a good start. I would start by
working through Free Code Camp:
[https://www.freecodecamp.org](https://www.freecodecamp.org). I believe some
of their students have actually landed jobs working through all the
curriculum.

------
mmstan
Try some MOOCs. There's "Python for everybody" specialization on Coursera,
it's newbie-friendly but you get to build a little product that does
something. IMO, that should be your first milestone - build something small
that works and see how you feel about that. If you find it interesting, you
can go for more courses and after some time you'll know where to go next, but
if you're not really amused maybe you should give something else a try.

------
jnelson180
If you decide to do Javascript, I highly recommend FreeCodeCamp.
[https://www.freecodecamp.org](https://www.freecodecamp.org)

------
Retric
Programming is surprisingly local because different industry's prefer
different languages. I suggest looking at local job adds to get an idea for
what to learn.

------
aregsarkissian
I would highly recommend learning JavaScript, php and Laravel a rapid web
application development framework to get ideas off the ground quickly. There
are a lot of free online resources to learn Laravel and a great community
behind it.

------
polote
Yeah coding is a right choice, there is plenty of work in this field.

My advice is : Pick a language (any language is good) most trendy currently
for backend are : python, nodejs, ruby, java and follow a beginner course on
this language.

------
holydude
Right choice if you want to do it for money (at the moment you never know
what's ahead).

You basically have 2 options in my opinion

1) technologies in demand ( js,java,c#,mobile,rails,python,sql etc)

2) do it for fun (pick whatever you want)

