Twenty or thirty years ago nobody would say that coding is hot. And today? Whoa! Everyone wants to start their new careers in the IT world. Many people want to be programmers. Not everyone, however, knows where to start with an IT career. In this article, you will read about programming languages, additional skills, and knowledge sources. I managed to gather all this information from my secret contacts.
Disclaimer No. 1
I am neither a programmer nor an IT specialist.
However, I spent some time working as a Project Manager in an IT company. Also, it happened that some of my friends are software developers and IT specialists of different kinds. So I asked my friends and their colleagues, what would they advise to someone who wants to become a programmer. Asking people for advice or an introduction to a subject is something I often do in my writing routine. It’s a part of the research I do for writing.
Anyway, I asked these people about various things like programming languages, sources of information and non-technical skills that a programmer could need. Therefore, this article is based mainly on what I heard from my informers.
Are you sure that programming is for you?
Software development and IT in general, are cool right now. I can understand that. You can earn a decent amount of money if you know how to write effective code. Maybe you will even become future Bill Gates or Elon Musk. Who knows? But we need one little disclaimer here. Production of software isn’t any kind of easy job. It’s easier than it was 40 years ago, but it’s not a piece of cake.
To be successful you must be diligent. And prepare to face the fact that a big part of your job will be an arduous search for bugs and solutions. Your code will have to meet various requirements imposed by clients (either your boss or an external company).
Last but not least, don’t forget that quite a lot of programmers don’t earn that much money. Many of them are responsible for pretty simple and repetitive tasks and maybe soon will be replaced with some AI solutions.
What programing language should I learn?
Choosing a programming language is a common dilemma among developers in spe. They want to know what language will give them more career opportunities, more money, and more respect. This problem is similar to learning any spoken language.
Below you will find a chart that shows languages advisable to learn, according to my “assets”. You can see that among them JAVA, PHP, and Python are the most valuable.
The clou is that you may know 10 languages and have nothing say in any of them. It isn’t only an anecdote, because programming, at the very basic level, is giving instructions to the computer. In human communication, we use more than words. Just look at the shelf with books about non-verbal communication. The tone of voice, your mimic expressions, and ambiguities. Your computer won’t understand any of these, hence the need to be very precise.
Anyway, you need to have something to say, but to whom and about what? In other words, what kind of software you want to develop? There are plenty of things that can be programmed and depending on that you will choose a suitable language.
Maybe you want to develop games or web applications, and then do you prefer front-end or back-end? Maybe you will be interested in database development or build software for industrial machinery? Who knows?
What other skills does a programmer need?
The era of introverted nerds in checkered shirts is gone. I mean, I have a couple of that kind of shirts myself, but the IT community is much more diverse today. And much bigger. As a result, you will need not only to know the art of coding but also to have other skills. For example, it’s good to know, how to explain, what your job is all about to a non-technical person. You can use your grandpa as a guinea pig if you want.
Besides my informers drew my attention on a vast catalog of competencies.
- Use of search engines, like Google – you will seek for peer-reviewed solutions and ideas.
- Problem-solving skills – that one is difficult to define but I believe this is the way of thinking about upcoming obstacles. It’s good to find a problem, but it’s even better to solve it.
- Logical thinking – this time it’s not about common sense, but about the cause and effect and other logical relations. Some sort of mathematical thinking is what you need.
- Business requirements analysis and understanding of business logic – this is something you can learn from business experience, but economy or management studies can also do the job.
- Some say that you should know the business you’re writing for as well. However, I think it strongly depends on the career path you will choose. As usual, you can either be a highly specialized automotive software developer, or multipurpose programming problem solver.
- Testing and optimizing your own code – this is the higher level of programming. Especially the optimizing part. You probably won’t know how to do it at the very beginning, but it’s good to know that it’s waiting there for you.
- Creative thinking – I will write another piece about creativity another day, for now, let’s just agree that creativity isn’t about daydreaming and fancy clothes. It’s about finding innovative and working solutions.
- Foreign languages – this one applies mainly in non-English speaking countries, like Poland. There are plenty of sources in English so you better speak it.
- How to read documentation and UML diagrams – that’s definitely useful, since you will receive instructions that way.
- How to write documentation – that is my thing. Trust me, as a former PM I know how important it is to have well-written documentation. It makes everyone’s work easier. Even yours, if you will have to make some changes in code a couple of years later. Please, write documentation.
- Communication and teamwork. How to talk with people – especially your teammates. Computer systems are getting more and more complex. Teams change over time. Eventually, you won’t find anyone who knows everything about the system you’re working on. This is why you need to talk to each other and do it efficiently.
- How to learn quickly – because to write code, you need more than just knowledge of a language. The programming environment is dynamic, and you need to follow changing frameworks and other useful technologies.
Where to learn coding?
Since the information revolution took place, our access to knowledge became a lot simpler. However, at the same time, we are flooded with huuuge amount of bullshit (or fake news, as they call it). The ocean of information surrounding us is a problem then, and future programmers often ask, where can they find valuable know-how and instructions applicable in their situation. My friends indicated several possible ways to learn to program. However, they also pointed out that all these ideas are only a threshold. The very beginning. Any course, or book, or training will equip you with the essentials, at best. Then you will have to gain experience working on your first project, then second, and another, and another.
Below you can see which sources my friends prefer. Online courses and free online tutorials got the highest marks. Why? Probably because the university degree will take 3 to 5 years and will give you immense knowledge about things only loosely connected with programming, and in-class courses are usually expensive and not as helpful as you wish.
Of course, now you need a job. Where to find an offer for a newbie developer? That’s a whole different story. Knowledge of a programming language is your basis. Acquiring some of the additional skills from this article will help you stand out from the crowd of other future programmers. No matter what path will you choose, learning to code is only the beginning of your journey.
Brace yourselves. The job market is coming.
https://www.flickr.com/photos/londonmatt/18891515611 by: https://creativecommons.org/licenses/by/2.0/