Published on

Improve coding skills with some computer science concepts

Authors

As computer technology develops, the concepts becomes more abstracted that it is difficult to understand the fundamentals. Current frameworks and tools are build in a way not knowing what's going on behind the scene is not a problem.
But having a clue of what is behind its functionality is a kind of superpower. In this article Computer Science is not used to strictly mean academic training. Instead the term is used to mean the fundamental computer concepts surrounding your work as software developer.

Computer Science is a discipline or branch of knowledge that involves study of computers and computational systems.

Computer science and software engineering

As a developer at work, you are the later. Computer science lays down the fundamentals, Software engineering applies the laid fundamentals in building scalable and reliable computer systems. These are two mindsets you have to keep in sync.

Meaning of compupter science to a developer

Software development as an intellectual work, it demands some form of thinking for you make sense of the development environment and processes. This is Computational Thinking,a mindset for solving problem by logically processing information. The core of programming language is teaching you computational thinking. Think, you are already a builder, to master your craft you need to equip yourself with the principles of building.

Upsides of more computer science

  • In programming, problem-solving depends a lot on how you frame a problem. For example, by understanding data structures.. you will have a clue whether to use arrays or linked-lists. Understanding the fundamentals makes your design and implementation decisions more accurate and reliable.
  • Boosting debugging skills, a bug puts programmer into heavy research to find why they exist. Having fundamentals on the subject becomes helpful.. Debugging server errors are less tiresome if you are equiped with networking concepts.

What makes it hard to learn

  • Computer science is very dense and subject, need a lot of time and practices to master concepts. Its even harder for self-taught developers.
  • At college some students are not motivated on the subject because they are not sure if it has practical use in their life. You then did for grades, now you have to do it to improve code and thinking.
  • Formal training, at least at undergrad-level, is less focused on practicing and uderstand concept more of speed to keep up with syllabus. It is a good intro though.

Better ways to learn computer science

Some learn well on texts while other are better in video courses, some do better with formal style, while others comes with their own styles. For better results combine these methods based on what works better for you.

Its better to pivot your current skills on the subject, so you will know what you want to know. This is you being interest-based.

Customization of the formal training

Here you are trying to approach differently from formal approach. Your task is to structure the method into your need. With internet you have an ability to access learning materials from world level academic institutions.

  • MIT has OpenCourseWare which is free web-based publication ofeducational materials of ther undergraduage- andgraduate-level courses.
  • Take the benefit of MOOCs like Coursera
    Choose the topic and go deep with it.

Text books

Books are good in learning and understanding techinical concepts. Read and practice.

Online

Research the specific problem on internet, you dont have to know everything instantly, embrace the incremental learning. This approach may help to handle the complexity of computer science.

The most important thing here is to apply new skills quickly.

The goal is to breakdown skills into microbehaviors, that you can internalize into your skillset.

Keep fresh with fundamentals, escape the cloud of mediocrity.

What do you think? mail me at [ jossey1918@gmail.com ]