It is not uncommon for people who start learning how to code to wonder if they should begin with basic programming-related subjects before studying a programming language. So do you really need to start with basic programming subjects prior to learning Java, for example? It’s yes and no, really. On the one hand, CodeGym’s course was designed to be perfectly clear and easy to dive in even for a total beginner. If you were worried about that, you shouldn’t. On the other hand, having a solid theory knowledge base most certainly wouldn’t hurt and could serve you a good service in the future. Plus, basic programming theory knowledge can be applicable in many areas. So going the extra mile here isn’t a mistake.
Photo by AWeith / CC BY-SA 4.0
Refreshing the basics of mathematics would be useful. You don’t need to get too deep into it to become a programmer, but having a clear understanding of things such as quadratic and linear equations, as well as how math is used in algorithms and problem-solving, will be applicable in software development in many ways.
Computational thinking is a set of methods that involves taking a complex problem and breaking it down into a series of smaller problems that are easier to manage, as well as expressing the essence of a problem and the solution in ways that a computer could execute. Algorithms are a part of computer thinking, but can be taught as a separate subject. Knowing how to come up with and use algorithms would certainly be very useful when you will learn coding basics and start programming.
Another important part of the theory behind programming is binary and boolean algebra, so you can also get deeper into these subjects. This will help you to learn how the binary system works and how to think in binary and operate in the binary number system.
And if you are keen to learn more about algebra, binary, and other fundamental principles of programming, it would make perfect sense to study how everything works from the hardware point of view as well. Knowing that could be very helpful when creating a program or figuring out what you can and what you can’t achieve with it.
And finally, you can start learning about programming languages and their structure by getting familiar with programming paradigms, which are a way to classify programming languages based on their features. Knowing about paradigms will help you to make a clear picture of what kinds of programming languages are there for us to use and where they can be used. This should complete the theoretical foundation upon which you can proceed to learn programming per se.
A decent advice from Rohan Urkude, a software engineer at HERE Technologies: “Being in the industry for more than 4 years now as Java developer and interviewer I can give you some brilliant stuff which you should know before you touchbase any programming language: Design Principles (SOLID, KISS, etc.), Design patterns (just a brief understanding) and Data Structures (underlying structures behind any DS in any language) and then go ahead and learn any language and see how much time you have saved cause now you know the gist of everything.”
Bill Karwin, software development expert and the author of ‘SQL Antipatterns: Avoiding the Pitfalls of Database Programming’ textbook, recommends everyone to learn how Java uses CLASSPATH first, because “in Java, 90% of problems are due to the CLASSPATH.”
“You must learn about how Java uses CLASSPATH to find classes to load. Any Java manual or tutorial should cover this, but be sure to pay attention,” says Karwin.
Pratik Patil, a software developer from IBM, recommends fresh learners to master either C++ or basic OOP (Object-oriented programming) concepts first: “If you know C and C++ then definitely you can go with Java. If you don't know any of them then learn OOPS concepts and make them very clear then go for Java.”