Everyone talks about the skills you need to know to be a developer, but has anyone wondered which tips you can ignore? That’s my goal today! We’ll take a look at three topics you definitely don’t need to know to be a software developer, and don’t let anyone tell you otherwise.
Table of Contents
If you stick around developer forums for too long, you’ll notice that everyone in the community loves to share their two cents. Of course, if you followed everyone’s advice, you’d never have enough time to actually learn anything. As a result, I thought it would be fun to put together a short list of things I don’t believe you need to know to be successful in the field. Hopefully, we don’t piss too many people off today.
Right off the bat, I’m going to start with a topic that is sure to get some backlash: math. I don’t think you need to know math to be a good developer. In fact, I would go as far as to say that the amount of math universities teach developers is often useless. Not once in the last ten years have I needed calculus in my day-to-day work, and I expect to go another ten years without the need for that knowledge.
For the most part, you can get away with knowing arithmetic. In some cases, algebra is useful. I’ve done a bit of algebra when working with graphics. Even then, there are so many libraries out there that do math for you that you’ll never need to implement any of them yourself.
That said, the deeper you go in the field, the more math you should probably know. For instance, if you go into machine learning, you should definitely know a lot of math. Any scientific application of software will probably demand a bit of math. Even game developers should know some math.
Overall, my general advice would be to only learn math as you need it. It’s a bit weird that I was required to take three calculus courses and a differential equations course only to use addition on a regular basis.
Syntax & Semantics
In general, you should know the syntax and semantics of the particular language you’re using, but I don’t think it’s necessary to have all of it perfectly memorized. Outside of the core language syntax, there are probably thousands of libraries you’ll use where you’ll spend much of your time reading directly out of the API. That’s okay! Don’t waste your time memorizing every function.
Over the last ten years, I’ve used a lot of programming language features and libraries, and I’ll tell you what: I could not recite a function’s parameters to you off the top of my head. And why should I be able to do that? Libraries change all the time. As soon as you have something memorized, it’s probably changed.
What I would recommend instead is to get really good at reading documentation. You’re ability to make sense of someone else’s work is your biggest asset going forward. And if the docs suck, you should be good at looking things up.
It may seem kind of silly, but there are no developers who know everything about computers. While I’ve built my own computer, I certainly don’t know how all the pieces work. Like, I have an understanding of how semiconductors work, but I certainly couldn’t build a processor myself (even with the right equipment).
Outside of hardware, there are several other topics to contend with like networking, databases, file systems, operating systems, etc. There is not a person on this planet that knows everything about these topics. Instead, folks specialize. Therefore, you might really get to know how operating systems work because you want to work on them, but don’t expect a web developer to know how they work too.
The unfortunate side of this misconception is that most folks outside the field hold it. To them, you are an omniscient wizard, who can fix prints, speed up laptops, and build websites all before lunch. Even in the magic world, wizards specialize. Why wouldn’t we?
Knowing What to Know
The ultimate challenge in becoming a developer is learning what you actually need to know, not what some YouTuber or Blogger told you to know. The best way to figure that out for yourself is to embrace your curiosity. You’ll never know what you need to know if you don’t try and fail at something. So, take a risk and make something!
If you’d like to try learning something with me, check out some of these related posts:
- How to Get Better at Programming: Lessons from Natural Language Learning
- 5 Great Strategies for Learning to Code
- The 28 Best Programming Languages of All Time
Likewise, if you’re interested, consider helping The Renegade Coder grow. We’d appreciate the support! Otherwise, that’s all I have for you right now. Take care!
Recently, I was giving a lecture about Java's "common" methods (i.e., all of the methods of Object), and I had epiphany about how Java only has toString() while Python has str() and repr(). So, it...
Magic numbers are numerical constants that have no clear meaning in the code and therefore make code harder to read. Anything that makes code harder to read is something we can use to obfuscate our...