Coding sucks for beginners
I saw this video this morning and was inspired to write about it.
I can say that as a beginner the most frustrating thing was the sheer amount of technologies there were and not knowing where to start. What would’ve helped is a blueprint of the technologies I needed to learn to just build a website. Lacking In this I developed in pure HTML CSS & JavaScript, roughly 4 years ago, some pretty cool applications. It was after learning React that I saw how inferior and inefficient the way I wrote code was. After becoming decent in React, different frameworks all started to look the same. Being able to see the patterns and similarities I believe is one of the strongest skills as a developer.
The other thing that is a real pain point as a developer is what does “good” code look like? I feared throwing up my projects on GitHub because I thought people would trash them and that I’d just look like a fool in public. With that point aside, I think having a standardized way of writing “good” code is important and this should be determined by what works, not myths. Code that is maintainable, readable, easy to digest, modular.
Teaching concepts rather than languages is more important to me and is what has helped me learn languages even faster. Concepts along with the basics (looping, if-else, etc) like abstracting your code and making code that’s reusable. Concepts that separate the noobs from the pros.
This video makes a lot of good points but I don’t think the technology is the issue. After learning concepts and seeing how these concepts are similar in other technologies, I have a blast learning new technologies. I still use primarily React to build stuff for myself or others to use because it’s what I know best. So if there is anything to point a finger at it should be the need to understand the why of what we do and the answer to these questions should be “to make our lives as developers easier”. It shouldn’t be “because a tutorial told me so” or “my last job did it this way” because it could be incomprehensible or alienating to other developers.
This video also talks about the interview process and I would just like to say that it’s broken. In other fields, you are asked questions specifically about your experience doing the job you applied for. But in web development, you are asked to invert a binary search tree or put an element from the end of an array to the front without using .push() and .pop(). Yes these things can be done, yes this may give you insight into a very narrow amount of my problem-solving abilities but does this tell you that I am a good team member? Does this tell you that I have a strong work ethic? Does this tell you that I will be able to do the job assigned to me? Unless this job is making A.I. or the next Google algorithm, I think not.
That’s my take on this video.
I’m hearing companies are getting away from the CS 101 interview questions and replacing them with practical pair programming exercises.