Self-teaching is the norm in the industry, many years now. Most of the technologies you learned during your official education 2, 10, or 30 years ago are almost obsolete in the industry.
So, no official education would constantly give you everything you need, here, almost by design.
But lately, it has been popularized too. The main reasons IMHO is the need for more "coding hands NOW" aka supply vs demand and the cost (in terms time and money) to go to the university (in terms of time and money again).
Sadly with that popularization comes some level of...myths and things that are dangerous to spread; especially for people that are entering the field. Here is my view on them:
We are paid to google things
Google searches are an important part of our day. Though that doesn't mean people google solutions and paste them blindly into their IDE (which happens of course).
You need to have some certain level of competency to know WHAT to google. And some higher level of competency to filter out the crap from the results. That's how the following joke came up:
- Where did you find this crappy code?
- Stackoverflow
- From the question or the answer(s)?
As Mark Richards said to one of his books Fundamentals Of Software Architecture:
Architecture is the stuff you can’t Google.
If you think you are paid to google things and you feel an impostor, try becoming an architect. Let me know how it goes. :)
Also, don't forget that some things MUST be googled.
We are dealing with so many different technologies, libraries, and tools every day which will be close to impossible to remember more than the basics, in more than a few of them. Or if you are looking for research papers that were created 6 months ago you cant know it from the top of your head.
Last but not least, most professions google a lot...but you wouldn't pick a cardiologist who is paid to Google. Don't be that guy/girl.
You don't need computer-science theory or math
Oh, that's a very touchy topic.
You will not need any advanced math if you are working as a backend web developer 95% of your time. I doubt you will ever need non-high school math if you are a frontend developer.
Though, mathematics can teach you serious problem-solving skills which many people I have encountered throughout my career don't have.
But what about game programmers? What about people that are working on machine learning and need to know serious linear algebra and statistics (you can be a practitioner without those, though)?
Computer science theory, in a similar manner, will help you scale up.
What if you are having issues with the network handling in your application? Will you go to the "network expert"? Will you just cross your hands because you are the in "the java-only team"?
Can you be a security engineer (not expert) by not having deep knowledge of computer science theory? And no, Metasploit tutorials on YouTube are not enough.
As a former colleague wrote on Twitter once: "You appreciate big-O complexity when you get your first AWS bill".
I can continue with more examples, but I think you get the point. I am not saying to attend a university (I understand the high tuition fees, though many universities in Europe provide high-quality education at minimal or no costs), out of compulsion.
But whatever way you choose, at one point or another if you want to scale up, you cannot escape the necessary reading.
My advice is: Don't disregard and nag about something that is just challenging your comfort zone. This is how people grow. And think if you are better off as a one-trick pony or a swiss knife.
Speaking about universities...
We should learn interviewing git and scrum in the universities
The main mission of a university is to learn someone how to think and learn. And of course the foundation of the science you are about to serve.
Yes, I am expecting to learn python or javascript instead of Cobol. But those would be the tools to implement a purpose, not the purpose.
I would appreciate any seminars or talks to prepare me for my first days in the industry (and I didn't have those, back my days), though NOT EVERYONE IS CHOOSING A CORPORATE PATH. Their needs need to be respected as well.
You will certainly do it
I like the encouragement there is in the dev community. Of course, there are stupid trolls and bitter people out there but their power is pretty much inexistent.
Mastering any STEM profession takes grit, tenacity, and perseverance. But to project those you need (at the very least) to like what you do. Alas, as with all professions, it is not a field for everyone. Some people are here because of career prospects or peer pressure and not because they like it.
Even though in some countries it is considered a taboo discussion topic, not everyone can do everything. And surely not equally good. Some countries in Europe do such filtering early on (like around the age of 13) and people tend to be happy with their choices without feeling inferior if they exercise an "unpopular profession'.
So my advice is, pick what you like and ignore the pop-talk. Who knows, you might be an early rider of the next wave, which seems to be public health and space industry (again) at the moment.
Bootcamps can teach me everything I need
Sadly a bootcamp can only prepare you for your first months/year in the industry.
Not because they are of low quality. But because they can't teach you anything you might need in a few weeks. And if they could, you probably wouldn't be able to absorb them so fast as they are complex concepts by nature.
I am almost ten years in the industry and still feel an impostor. 😃 Why do you think a few-months-bootcamp is all you need?
If you choose a bootcamp for the start of your career, make sure you do not rely there completely. Make sure, as I mentioned above, to do the necessary reading sooner or later. Being a well-rounded engineer will never go out of fashion.
Conclusion
Thank you for reading this article. What do you think about such myths? Have you heard any other opinion that should be addressed?
Top comments (2)
All good points.
Thank you Spyro 🙂