One of the best ways to start a journey with many paths is to ask someone that’s reached the destination you want to go. Whether you’re working as a front-end, back-end or full-stack developer, you want to learn a language that can help land that coveted over-$80,000 a year salary. In Baltimore, when Technical.ly looked at the data behind high earners — specifically, those making $200,000 — we found computer systems design and related services were among the top 10 industries that produced the highest earners in the city during both 2009 and 2019.
But the question remains: What coding languages should aspiring programmers be learning if they want to break into the tech industry?
Stack Overflow, the crowdsourced software developer learning site, polled 70,000 software developers to nail down what devs are using to improve their skills, as well as the languages they’re investing their time in. But to give the knowledge from that raw data a more personal feel, Technical.ly asked software developers in Baltimore what coding languages they’d recommend starting tech career today. We also asked if, were they to go back to the first year of their career, they would do something different and learn another coding language. Here’s what five of them had to say:
Chris Uehlinger, software engineer at TechSlice
When I was a kid, I learned C (my uncle gave me his old textbook). I would not recommend this approach to anyone. While I hold C in high regard and think all software engineers should learn it at some point, it’s a really difficult starting language and isn’t very rewarding until you have a ton of experience. In fact, I actually gave up programming for several years because I was failing to make the kinds of programs I wanted to make.
Years ago, I would have said PHP, given how easy it is to spin up a web application using PHP. Now, I would say Ruby on Rails — Ruby being a programming language, and Rails being a framework built in Ruby that people use to create web applications. Nowadays, there are so many resources for learning to program in Rails, from bootcamps to self-directed courses one can take, local meetup groups and others in industry who are happy to mentor and impart knowledge to others. If getting a job is your goal, then [you can] rest assured knowing that your skills will be in demand as a Rails developer.
Like most skills in life, having an idea of where and how to use them is vital to making sure the right set of skills are being identified, learned and perfected over time.
For most developers, people early on gravitate toward front end (what people interact with, either on a website, a phone screen or some visible widget that represents a program or code) or back end (server-side scripting that executes code or stores data in databases that run commands to retrieve certain things when the client/user wants it). Eventually, some can even do both of these well and becomes a full-stack engineer.
After going through the process myself, I would highly recommend general purpose languages like Python, given its ability to be used in various things, (from) making models to websites to scientific experiments.
I wish I had a cut and dry answer to this question. When I adjunct at the University of Baltimore, I get asked a similar question by my students every semester.
If someone wants to break in the video games industry, the language they should learn will depend on what aspect of the games industry they wish to enter: indie, or AAA.
If they are unsure, then I recommend they learn C++ (at least up to the C++11 standard) as it will give them a foundation in whatever sector of the games industry they wish to enter. If they are leaning more toward indie game development, then C# coupled with the Unity3D game engine tends to be an easier path forward. A large community of indies have gathered around it which has resulted in a good amount of free documentation, videos, and social networks to help each other.
If the programmer wants to pursue AAA, then C++ and even non-object-oriented C are good places to start learning. Although there is a bit of a learning curve, there are many engine options to pursue with that programming knowledge such as Godot and Unreal. It’s also the language of choice if [you’re] rolling your own game engine.
If I was starting today, I’d be following my own advice and ensure I have a good foundation in C++ but also be looking to the future with WebAssembly and Rust. The latter may one day be a replacement for C++, as Rust attacks problems on the same abstraction level but has memory safety built into its foundation. This makes it an attractive option in firms who need to quickly scale their applications without sacrificing security.
I started out writing in C and C++ because that’s what I learned in school, but I didn’t really enjoy it that much. I think writing in C++ is probably a great move for job security and pay because there are fewer people that seem to write in it, but it also feels like fewer projects are being written in it (so you might be more likely to be maintaining codebases, compared with writing new code).
I don’t regret how I started my career. I guess if I were to give a younger version of myself career advice, it might be to consider not going to college. I feel like so much of the stuff I learned as a computer science major really didn’t help me out that much. I took so many math classes that have not been very useful to me (I don’t write algorithms) and I could have learned a lot of the software engineering in a trade school, or just skipped it. I think there are definitely people who need that kind of low-level knowledge, and I started to go down that track when I did some kernel development and malware analysis. But I ultimately didn’t enjoy it that much.
There are lots of options out there, and no one right answer. Go make some mistakes and figure out what you enjoy.
Donte Kirby is a 2020-2022 corps member for Report for America, an initiative of The Groundtruth Project that pairs young journalists with local newsrooms. This position is supported by the Robert W. Deutsch Foundation. -30-