When learning a programming language, there are two main situations that you can face:
If you’re a beginner looking to work and experiment with powerful iOS 14 features such as widgets and App Clips to create your own apps, this iOS programming guide is for you. The book offers a comprehensive introduction for experienced programmers who are new to iOS, taking you through the entire process of learning the Swift language, writing your own apps, and publishing them on the App Store.
- This may be your first language and in general you are familiar in Computer Science at the level of an ordinary user;
- You have already studied another language and now you want to learn a new one.
How to learn a programming language?
The approach is quite different for each of these two options, so let’s look at them in turn.
If you haven’t dealt with programming before, first you need to concentrate on basic programming concepts and elementary concepts, get to know the structure of computers and understand well the principles of operating systems. This will greatly facilitate further understanding of the material under study. As a recommendation, I recommend that you familiarize yourself with the Harvard CS50 Fundamentals Course.
After studying basic knowledge of Computer Science, you can already start learning a programming language. Always start from the very basics and do not focus on specific libraries or technologies – this will only distract you from understanding the syntax of the language. I’ll take my favorite C # as an example. Even if you want to become a Web developer and plan to learn ASP.NET Core, work with regular console apps first. This will significantly save time on developing interfaces and customizing the application, less basic code means fewer mistakes that you can make. Plus, you will not scatter your attention to specific subtleties of the platform, distracting from what you really need at the initial stage – learning the syntax.
And after you have a good knowledge of the programming language itself, the technologies associated with it, algorithms and structures, you can proceed to real practice on the technology with which you plan to work in the future. But don’t take too long the process of simple study. Create your own project, gradually upgrade and improve it. It’s okay to make mistakes and correct and rewrite a lot. Nobody has become a mother of programming since birth – this is the same skill as any other, and in the process of learning mistakes are likely. Only those who do nothing are wrong. And do not forget to ask experienced specialists to do the code review of your project – this is a very useful source of information.
Of the useful tips, I can recommend periodically going to interviews, even if you are not going to change or get a job. This makes it possible to identify well those gaps in knowledge that would be good to close in the first place. And if you are lucky, there is always a chance to receive a tasty offer that you will not want to refuse, or at least to establish contacts. But in no case should you go if you don’t know anything. This will only create a bad impression. Going to an interview, you need to already have a set of knowledge, you can first ask a friend to ask around typical questions, and based on this, make a decision about sending a resume.
For those who already know any other programming language, the learning process becomes much faster and easier. At least this is due to the fact that you know Computer Science at the proper level, and also have already encountered algorithms and program design. You already have a programmer mindset in your brain that you just need to adapt a little to a different syntax. For this, again, creating your own project is well suited. For example, you can rewrite your past works in a new language, or even immediately try to take a simple order for development and practically study the syntax with Google and a reference book.
In terms of training, everything can be very individual. But if we take an approximate value for the first language, it can be from 3 months to one year. When studying a second and subsequent languages from two weeks to two months. And I will clarify again, regularity is very important for training, it is better to devote a little time every day than for a long time, but once a week. And more preference is given to practice than just reading or watching videos. And then everything should work out.
This excellent addition to the UTiCS series of undergraduate textbooks provides a detailed and up to date description of the main principles behind the design and implementation of modern programming languages.
Rather than focusing on a specific language, the book identifies the most important principles shared by large classes of languages. To complete this general approach, detailed descriptions of the main programming paradigms, namely imperative, object-oriented, functional and logic are given, analysed in depth and compared. This provides the basis for a critical understanding of most of the programming languages.