DEV Community

Discussion on: How should a total beginner to the field of CS and Programming get started?

Collapse
 
uminer profile image
Moshe Uminer

There are some suggestions here already, but I'll add my two-cents, since the following point hasn't been addressed.

Generally, in any specialized field, there exists the field itself, and the "raison d'être" (the reason for the field's existence).

As an example, let's take advanced mathematics. Arguably, the field of mathematics exists because it is useful for every field in engineering (for example) and they are important for their usefulness in building (whatever that field is for). However, in the mind of the mathematician, dealing with mathematical theorems is an activity for itself, not relegated to being immediately practical.

The same is true of technology and of software. Technology exists to serve a purpose - originally, computation, though now it serves many others, like business, gaming and communication purposes - but to one who is studying the field, advancing in the field is a exciting and a purpose for itself, regardless of whether the technology really solved an unsolved business problem.

Technically, Computer Science is theory, and Software Engineering is practice, mirroring the distinction between the field and the purpose made above (and they of course both benefit from each other).

However, especially for someone new to the field, it is exciting to build something that works (like when learning a programming language) - but then, it is easy feel like the effort was worthless, since "no one will use a command-line app", or "who needs another todo app". On the other hand, a beginner may not be up to the task of building or contributing to a "real" useful project.

For this reason, I think it is important to have a curriculum, even a loose one. And to not judge ones progress before a set time. This way, one can judge oneself after getting used to the initial jolt and the continuos learning of computer programming. And since there is a curriculum, judgement can be made based on how well one acclimated to the curriculum, how hard or exciting it was then, etc.

So, I would recommend (for programming):

  • freecodecamp.org (the first course there is html/css, and styling can be hard to get right, which may not the best for a beginner to deal with, perhaps starting with the javascript section would be better?)

  • alternatively, try to go through a book that teaches programming (when I started out, I liked this python book, but unlike freecodecamp, it's not free. However, that website has many tutorials for all levels, as well as learning paths).

  • trying to go through the projects here may also be a good idea.

  • for those who like music, perhaps sonic pi music programming would be a good idea.

(As for computer science concepts, I personally feel that it's better to begin with those after one feels more comfortable with code).

Collapse
 
amorpheuz profile image
Yash Dave
  • Very true, following a curriculum with set goals will surely help gauge the progress.

  • Freecodecamp is a resource I have personally used and love too, will recommend if she wants to follow the web route.

  • Will definitely go through the App Ideas repo with her gauging if there is anything she likes and it is a good beginner challenge.

Thank you for your input!