DEV Community

Discussion on: The New Way of the Developer?

Collapse
 
nickfazzpdx profile image
Nicholas Fazzolari • Edited

Introduction to Response

I’m going to start with the premise of how people went about becoming developers “back in the days”. In the early days of computing, during the cold-war and consequently the space race computers existed mostly in the domain of military, science and industry and to an increasing degree in the late 1950’s in the corporate world.
Furthermore, the technologies that were available at the time were in many ways still experimental or in their theoretical stages of development. Just those factors made the barrier to entry in working with computers much more difficult in terms of qualification and market supply of required labor units.

Another big factor was that in the early days of computing there was no widespread consumer market availability. There were sci-fi folks who imagined how computers could be used for leisure and entertainment, but the realization of that was generations out. So yeah, you had to have serious talent accoladed by credentials to get anywhere near a computer in the early days. That’s why Silicon Valley and the original hacker movement was so influential. The hacker movement broke digital computing into the consumer mainstream and people quickly discovered there was A LOT of money to be made.

Are there any significant differences between developer [learning and career paths]?

Absolutely. If you’re going the self-taught route you have to face the challenges of allocating enough time and having enough drive and discipline to actually learn how to become a software developer. Depending where you are in your life depends on how those challenges will play out. Imagine being a 36 year old carpenter working a union job who is married with 3 kids one which is nearing high-school graduation and two younger ones a few years apart. After working a full week and taking care of family duties there might not be enough time to sit down for solid planned out blocks of time to get into the learning material, and let’s say even if you were to find a few hours a weekend, depending on your learning abilities you might or might not develop a learning pace where you actually make progress over weeks.

On the other hand, if you’re a teenager living with his family and love programming you can invest your free time and school vacations into programming and learn a lot faster. Same goes for single people in their twenties who might already have some higher education under their belt. That type of person is in the key code bootcamp demographic. Code bootcamps are worth being skeptical of. Do your research. When it comes to professional careers in STEM there is no get rich quick scheme aside from the person selling you the get rich quick scheme. From my experience and knowledge bootcamps are ok at best and a total scam at worst. I think they’re good as supplements to different learning options.

Considering the computer-science learning path is a solid choice for people who have shown some talent or interest in basic programming and have aptitude in systems thinking. It takes a lot of time, costs a lot of money and leans heavily into the theoretical and mathematical concepts that come with programming computers and the functioning of digital computers. This path differs from the self-taught and bootcamp paths in that you obtain a degree from an official institution of higher learning (AS, BS, MS, PhD in CS). While those accreditations show that you have the academic discipline and talent in the field it doesn’t say much about your ability to complete the day to day functions of a software developer. I would say make sure to get an IT tech, or IT helpdesk job while doing your CS degree to show that you moved into your professional domain during school. Also, make stuff while you’re in school.

Is their mindset on the same page?

Generally, not. Think about it. A person who is willing to throw a comparatively small amount of money at a bootcamp that gets you ‘something’ as fast as possible versus someone who wants to spend 2 to 6 years rigorously studying the subject of computer science could have different goals and motivations for their actions. Someone who wants to teach themselves how to program computers might be doing it as a hobby or for a real-life need in their personal life. Ultimately, the question is open ended, and you really can’t speculate about someone’s mindset without getting to know them on a more personal level. Even then you might not get a clear idea of their mindset either. We are messy creatures after all.

Do you need a computer science degree to become a ‘better’ developer?

What do you mean by better? Are we talking about cutting down on logic bugs or getting better about class, method and field naming conventions? There are thousands of things to improve on as a developer and it should be an ongoing progression. Where was the person to start with? What domain of programming is the person looking to get involved with? Do they want to work on the codebase for the Airbus 320? Develop web pages and web apps? Or implement device drivers and operating systems?

If you want to get into the Airbus codebase or write device drivers for hardware, you’re going to get value from a CS or EE degree. Most employers in those low level programming and engineering systems programming jobs require a CS or Engineering degree for legal reasons. When lives are at stake you don’t hire some yokle off the street to hack together some homebrew code. If you’re looking to become a front-end web developer, you can teach yourself and maybe do an associates’ in CS or CIS. Or bootcamp to get some experience and knowledge in addition to self-learning. I’m not saying there aren’t serious technical challenges in front-end, but HTML, CSS, DOM, CSSOM accessing with JS is not going to be equivalent to writing device drives or airplane navigation and control surface code. Working with a client that says: I need a blue button instead of a pink button here, versus sitting in on a aerospace engineering meeting require different skill sets.

Is a JavaScript developer coming from a Bootcamp worse than a Java Developer shifting towards JavaScript?

Depends on the person. What if the Java Developer worked at one job his entire career and learned a bunch of really bad habits? Whereas the person coming out of Bootcamp only learned a few bad habits in a short amount of time? It might be easier to work with someone who only had 6 months of bad habits as opposed to 10 years of bad habits. Really depends on the individual, the demands of the job and project and the culture surrounding the job.