Ask HN: Why learn a back-end stack?
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?
18 comments
[ 1.9 ms ] story [ 45.0 ms ] threadMy 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.
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.
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.
- 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.
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)
"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.)
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.