4 min read

When Should You Start Learning CS

Last Update: 20 May, 2022

You can for sure become a web developer without taking CS classes or going through the basics such as Data Structures and Algorithms. But don't forget these classes (or courses) exist for a reason.

§Common Web Development Courses

Most of the web development courses start you with HTML, CSS and basic JavaScript. These can be considered the foundation on top of which you will build your web development knowledge. Interesting thing about web development is that, if you are into art you have every opportunity to shine. You can design websites and write the code to make them operational yourself. You can develop websites with very minimal CS knowledge and that's totally fine. You will even be able to get a job as a junior developer and start your career in tech with very basic CS knowledge. But what happens when you need to do more than just front end development.

Most of the courses you can find online are very limited in terms of CS fundamentals. It is understandable that the average learner is just looking to acquire the practical knowledge to realize their business ideas or start a career in tech. Most of the time what you end up learning after a js course is what loops, variables and functions are. You are going to have to go the extra mile to learn the scopes, what is a thread, what is OOP etc. There are of course courses that give the learner a more in depth knowledge about these topics but these courses are much less popular than the basic ones. Either people are satisfied with the basics or they just give up after taking a look into basics. But this is the current situation of web development courses.

§What Are You Missing

First of all, if you explored other programming languages you must have realized that on the surface they are very similar. There are loops, variables, functions etc. So going through the basics is no trouble at all. This way definitely the case for me. I started learning PhP and Python after getting comfortable with JavaScript. My main motivation for learning Python was to understand data science. So not totally related to web development directly. The reason I learned PhP was totally to increase my chances in the job market. I realized that a lot of web development jobs required at least basic understanding of PhP. The differences between languages were to me very basic. So working with python and PhP was even entertaining.

The differences between languages to me, as I explained above, were very faint. But these differences actually matter when you get into Data Structures and Algorithms. You start understanding the cost of the functions you write. The structures you've been creating for your applications become more important. That's why I see CS fundamentals as the next step in learning web development. The performance is crucial, especially if you are developing a complex web app that is going to be used by many people around the world. Have you every wondered how is Google searching through millions of websites in less than a second to give the most relevant ones, if not the exact website you are looking for. As you go through the CS studies you will start coming up with your theories.

After learning CS fundamentals you will understand more of the code you write, and you won't need to just memorize code. When you understand how things work the way they work, problems are just challenges for you that in time you can overcome. You learn from the errors you face and you don't repeat them in the future.

§Understanding The Challenges

Well first of all web development can feel already complex enough. There are so many frameworks, languages, css libraries etc. you can use to create web apps. As we all know reading the docs will never suffice. You gotta develop couple of apps using them understand what is going on. These are all very time consuming already. Starting learning about CS can be done when you are confident in your web development knowledge and you feel like there isn't much you can learn about web development.

In web development most of the knowledge you gather from your courses is practical. You can see what your code is doing right away in your browser and learning this way is more fun for the most of us. In CS, you will be dealing with math and abstract structures most of the time. You don't need to get really deep into these concepts. If you start studying CS fundamentals before reaching the point you wanted to reach in web development, you might feel overwhelmed and might even quit. So if you feel like you are doing too much, take a break and re-assess your situation. It's a marathon, not a sprint.

§Conclusion

I can proudly say that I'm a fan of learning. I love learning about everything. That was the reason I started learning about web development in the first place. I simply wanted to learn how to create websites and I'm glad I did. But even for me, a person who loves learning, it was challenging at times to learn about CS and math used in CS. I don't wanna discourage anyone, but I think you should be aware of the difficulties you will face before you start. This way you can come up with a study schedule and avoid burnout.

I know that there are developers who never studied CS and they are just as successful. You can be one of them. But in my opinion if you wanna succeed in tech, create a business, provide a service or just become the best developer you can be you're gonna need CS knowledge at some point.

Ilker Akbiyik