All the hesitations are over and the decision is made: you’re going to become a programmer! Hurray!
Mastering a new profession is a great adventure. Now that you are going to be a software developer, the next step follows. But what IS that next step? It seems that there are dozens of options. There are multiple learning resources, hundreds of programming languages and frameworks, and various types of software to create. You don’t even know where exactly you should code. This might really feel a bit overwhelming.
No worries! I will guide you through this forest. Let’s go.
There are various types of programmers you might want to become. If you want to be able to create sites or web apps, go for a web programmer. Dreaming about making the next Microsoft Office or Photoshop? Try to become a desktop application programmer. Choose to be a distributed application programmer or even a system programmer if your ambitions are as high as to be the inventor of high-load enterprise-level server applications. If your goal is to create mobile apps, then obviously go for a mobile developer. Want to create new engaging and interactive gaming experiences? Definitely learn Java, C or C++ and become a game developer.
As soon as you choose the type of programmer you want to become, it will be easier for you to pick up the coding language or frameworks to learn.
Once you’re done with the tech field, now is the time to make the next choice: the programming technology. There’s a huge variety of them depending on the area.
- Enterprise-level applications — Java
- Web-sites back-end — Python, Ruby, PHP
- Server-side of web apps — Java, Python
- Mobile apps — Java, Kotlin, Swift
One more important technology is SQL, it’s not a programming language, but that’s a must-have for every programmer.
Okay, let’s ease the matter for you. Here are some of the most popular programming technologies to start with.
- Java This is one of the most in-demand technologies in the world. It ranks number one in almost any programming language ranking. If you master it you can use it for virtually anything: back-end development, mobile app creation on Android, large-scale enterprise-level projects, or just maintaining good old legacy code. Java developers are some of the most in-demand specialists on the job market.
Java developer job openings on Glassdoor: 16165.
Average Base Pay: $79,137 / yr.
- Python The present and the future of Data Science — welcome to Python. The language is one of the most widespread now and promising for the future. It is used to develop web applications, GUI-based applications, and so on. But what makes Python even more lucrative is that this is a number-one technology for Data Science and is widely used for Machine Learning, AI-based projects, etc.
Python developer job openings on Glassdoor: 13140.
Average Base Pay: $76,526 / yr.
Average Base Pay: $79,137 / yr.
- HTML\CSS These are not quite programming languages, but two separate technologies and they are both used for front-end development. Almost every webpage is built with their help. HTML (HyperText Markup Language) structures the information on the page for the browser. And CSS (Cascading Style Sheets) helps the browser understand what a page should look like.
HTML\CSS developer job openings on Glassdoor: 6028.
Average Base Pay: $68,524 / yr.
No textbook will make you a great programmer. The practice will. So what you need to do is download a tool for code. Different languages require different programs (for example, for Java you can use Intellij IDEA, for C# and C++ — Visual studio) and start writing. Do some simple tasks, write programs, and show them to someone who can help you. Ideally, you should find yourself a mentor for this, but it’s okay to ask for feedback on some professional forums as well.
As a great alternative, use training platforms for programmers. These are the top three in my opinion.
This is the first option to turn to if you choose to learn Java. It has over 1200 well-structured tasks mostly based on practical issues. There is an online validator of your solutions, so you can get your results and see your progress as soon as you finish the task. Though it is focused on one technology only, the creators’ team has profound knowledge of it and the ability to teach the language step by step.
This resource has several great options to start with. First, you can pick up the technology to learn. Then you might opt to go through coding challenges. You can do check your knowledge of such programmings technologies as SQL, React, Node.js, Python, Ruby, and many others. And finally, there is a special vertical to prepare for the job interview.
The chef cooked some competition for you here. You can compile and run the code right on the platform, take part in various contests, and discuss your work on the forum. (Getting professional advice is always a good idea!) Guys run competitions that accept solutions in 35+ programming languages like C, C++\, Java, Python, etc.
Open-source projects offer immense opportunities to glimpse into other developers’ thinking. Have a close look at their solutions. Note how they figured out the way to resolve this or that matter. Try to find your own approaches to do it. This is another way of practicing coding. Since you are a beginner and do not know many answers (yet!), analyzing others’ examples is a great way to learn. Don’t treat the code as a piece of literature but rather as a riddle. Resources like GitHub, GitLab, or SorceForge are the places to go for it.
Many newbie coders strive to find a mentor who will lead them through the dark of programming. But that might feel like a hurdle race. So I’d suggest you find an alternative: search for a community of programmers. Join a programmer group, go to a hackathon, or try to take part in an open-source project. There are plenty of them online: general interest tech communities, groups around separate technologies, etc. Showcase your work and listen to the feedback. Share your knowledge as well! Moreover, you can also connect with other developers on forums like these.
- Java: r/java, r/javahelp
- Swift: r/swift
- Objective-C: r/objectivec
- PHP: r/php
- Python: r/python, r/learnpython
- C#: r/csharp
- C: r/c_programming
- #Hashtag Developers
- #European Dev Explorer
- #Angular JS Chat
- #DevOps Chat
StackOverflow is one of the top communities of developers worldwide. You can find an answer to almost any tech question, find a teammate, or find a job. It’s a must-have on your list of resources.
SitePoint is another great place to learn to code for the web and join a vibrant community. The platform also posts jobs. This option might be handy when you start to search for one.
When you start practicing you will notice that some pieces of your code are quite good. Store them somewhere and be ready to show your future employers or clients. A neat portfolio will help you find your first job much faster. Showcasing your work is a steady signal to the employer that you take software development seriously.
It’s not just for fun that you decided to learn to program, right? Craft yourself a CV and start searching for entry-level positions. Another important part of being a successful software developer is presenting yourself and your skills to the employer. So have your CV and portfolio ready, and master some presentation skills. Job interviews might be a stressful experience, so don’t expect to get a job right after the first one. Continue practicing both: coding skills and presentation skills. In the meantime, you might also take some freelance jobs to keep yourself professionally fit.
Probably now it sounds like a distant future, but once you feel confident with one programming technology take an introductory course on another one with a different paradigm. This will enhance your coding experience first. And when you compare the two different technologies, it opens up a new perspective.
Being a team player is an important part of any job, software development included. Everyone wants to work with nice people. If it’s hard for you by nature, apply effort to learn how to communicate, work in a team, present yourself, and be empathetic. Tech jobs in reality are not about sitting behind a monitor and striking a keyboard. It’s working together with other developers, product managers, project managers, etc. Coding is about teamwork. Moreover, advancing your career might really depend more on what kind of person you are — especially when HR has to choose between two equally good coders.
The technology world is an ever-changing place. Every now and then new languages or frameworks appear. Projects are switching their primary platforms. People invent new ways of communicating with machines. You cannot learn a tech language once and be all set. Even within the technology you know best, some new things might appear. So a great lifetime approach would be to constantly learn something new: a piece of syntax, an open-source project, or even a brand-new technology. The ever-changing job market demands up-to-date knowledge all the time.
Now you know how to become a programmer without a degree and where to start. Choose your field, language, and pool of technologies, browse through the learning resources, and start right away. Join the professional community to get feedback on your coding. And don’t forget about soft skills. The kind of person you are will advance your learning and career much faster than just being able to write a good piece of code. Today is the best day to start!
First published on Quick Code.