Vim or VS Code? Tabs or spaces? Rails or Django? The world of programming is fraught with decisions to be made. Sometimes experienced developers are able to share their beliefs in a somewhat objective way. That said, we’re all human, and opinions can come across as gospel when we’re not careful.
While I was working on my CS degree, I had very smart professors that disagreed vehemently on fundamental tooling and methodologies. For example, my advanced algorithms professor believed if you weren’t using Linux and Make to compile C++, you were too far gone to deserve help. On the contrary, my graphics professor built his C++ programs on Windows using Visual Studio’s UI. I now have an opinion on the matter, but it was useful to me to be exposed to different approaches and their tradeoffs.
Excluding academic topics like CS fundamentals and mathematical proofs, there’s often not a “right” answer in programming; many decisions come down to tradeoffs and preferences. There are however a few obvious exceptions to this rule:
- PHP is a fractal of bad design
- Tabs are better than spaces
async/awaitis better than
… just kidding, my opinions are leaking again.
I’ve been working on Boot.dev for a couple of years now (as of a couple weeks ago I’m now full time on it!) and a big concern I have is that if my students are only listening to me, they may mistake my opinions for being correct, a dangerous mistake indeed…
For reference, Boot.dev is a hands-on platform for learning backend development and computer science fundamentals, and I’m really interested in making sure that my students have exposure to plenty of ideas that are not mine. In fact, reading articles by many different authors here on FreeCodeCamp, on HackerNews, or on /r/programming is probably one of the best things you can do to diversify your exposure to coding opinions.
One of the most useful exercises for you as a new developer is to listen to two experts disagree on a topic, and form your own opinion based on the facts and the arguments presented. It teaches you to think for yourself! Once you’ve puzzled through some of the core ideas on your own, you’ll be able to have intelligent conversations about it with colleagues and employers - a very useful skill for interviewing!
For example, I’m much more likely to hire you if you can coherently explain to me why you would use PostgresQL in a specific scenario (even if I don’t completely agree with your reasoning). If instead you said, “well I’d use PostgresQL because my mentor likes it” or “because it’s what I learned at boot camp” I would be less impressed.
To sum up, if you’re getting into programming, or even if you’ve been doing it for awhile, it’s really important to keep a few things in mind:
- Hearing the opinions of others will broaden your perspective.
- Forming your own opinions will give you an identity and make you a more thoughtful developer.
- Being humble about your opinions and being willing to change your mind when presented with new information is the pinnacle of growth.
If you’re only learning from a single person or source, I’d recommend consuming additional programming content to supplement your learning. Read some articles, watch some videos, find some communities, take some independent courses. It will help you escape any echo chambers you may or may not be hung up in. Good luck in your programming journey, if you’ve enjoyed my writing, feel free to follow me on Twitter!