Answer the question
In order to leave comments, you need to log in
Which way to learn programming to choose?
Hi all! I am 28 years old and I decided to start learning programming. In the distant past, I was interested in computer topics, but then, stupidly, I abandoned and turned the wrong way. Now I want to decide on the prospects and try - hence a number of questions, for convenience, divided into blocks.
B1: LABOR MARKET AND OUTLOOK.
B1.1. What majors in programming are the most open and friendly to juniors?
What are the development prospects?
B1.2. What specialties can you learn to junior in the shortest possible time?
B1.3. In general, what should a junior know and be able to do? To what level do you study?
B1.4.What are the chances of getting a job as a junior in C++? And, given the complexity of the language, should I consider this area at my age?
B2: PROGRAMMING BASICS\BASE.
Often there was advice to start studying with the basics of computer science, but the lists of topics varied: somewhere there were few disciplines and it was not clear whether they would be enough; somewhere there was a lot and it was not clear whether it was necessary to study so much. Hence the questions:
B2.1. I would like to know the most complete list of really necessary topics and disciplines of computer science.
And I would like to know the best sources (courses \ books) of knowledge on this list.
Ideally, if it is an integral program in one place.
B2.2. Do MIT and Harvard's Introduction To Computer Science courses cover the need for theory? Is it worth going through them?
B2.3. What else from the theory, besides the basics of computer science, does a programmer need?
For example, there are topics "introduction to programming" and "software developing" - do you need to study these topics as well or are they the same as in computer-science?
B2.4. Would you like to know the most complete list of really necessary mathematical disciplines for a programmer? And what are the best courses/books to learn this?
B3: PROGRAMMING LANGUAGES
As far as I understand, after learning the basics, I will need to learn the programming language itself. Hence several questions:
B3.1. How many languages does a junior need to know?
B3.2.What language should I start learning from? The most promising and flexible (used in various fields and specialties) and the best to learn? And what language should be added to it in the future?
B3.3. Advise the best quality well-developed courses \ books for learning the recommended languages. (It is possible in English and can be paid)
B3.4. How much do versions of the same language differ from each other? How long does it take to learn a new version of a language?
B3.5. What can you say about Treehouse courses?
B3.6 Should I start learning C++? I have heard that it is quite complex and this suggests that I can mess around with it for a very long time.
Many thanks in advance to everyone who helps!
PS For those who are also in the process of learning - write to the mail [email protected] We will be able to share experience and best practices. I will be glad to communicate!
Answer the question
In order to leave comments, you need to log in
B1: LABOR MARKET AND OUTLOOK.
B1.1. Web
B1.2. Web
B1.3. Until you pass the interview. What you need to learn there and learn.
B1.4. There are chances. The language is old - there are many specialists. Although the language is complex, for some reason the salaries are less than in web or mobile development.
B2: PROGRAMMING BASICS\BASE.
For most tasks on the web, this is not necessary. If you want more, check out other resources. But it is a risk to abandon everything.
B3: PROGRAMMING LANGUAGES
B3.1. One language.
B3.2. Depending on the chosen area, look for information on the Internet. You can not learn a second language at all until the end of your life, if you don’t need it.
B3.3. The best thing is the documentation for the chosen technology.
B3.4. Study 1-2 weeks. Understanding - a few years.
B3.5. For the web freecodecamp.com You can start right now, otherwise the search for the best language is endless.
B3.6 No.
Your goal now is to get a job as soon as possible. You can study programming as hard as you can indefinitely, but you will never be 100 ÷ ready for real programming. Only on real combat missions, only surrounded by more experienced colleagues is real and not imaginary growth possible. Hence the conclusion - any popular Japanese. Although there are nuances here. I would not recommend, say, a python. For the reason from the postulate above - it will be difficult to find a job. I recommend php. Everyone who writes badly about him simply does not know anything about him. Like that 4 month old junior above. You see, he is unpleasant to him. Maybe he doesn't like to put a semicolon, maybe some other nonsense. But don't expect anything objective here. And with this petty subjectivism it knocks people down here. In fact, modern php is good, fast (! ) language, with full-fledged (not like in older versions) OOP. And it gets better and better with each version. Both business card sites and solid enterprise projects are written on it. And there are many vacancies. The second option is java. But apart from mobile development, this is a language for enterprise projects. Accordingly, knowledge of Java alone is not enough. You need to know and understand a lot of other springs or EE. And it’s more difficult to get a job as a junior. And what do we need? That's right, start working professionally as soon as possible. But if you have confidence in yourself that you will go through this path, that you have enough perseverance and patience, everything will pay off. But apart from mobile development, this is a language for enterprise projects. Accordingly, knowledge of Java alone is not enough. You need to know and understand a lot of other springs or EE. And it’s more difficult to get a job as a junior. And what do we need? That's right, start working professionally as soon as possible. But if you have confidence in yourself that you will go through this path, that you have enough perseverance and patience, everything will pay off. But apart from mobile development, this is a language for enterprise projects. Accordingly, knowledge of Java alone is not enough. You need to know and understand a lot of other springs or EE. And it’s more difficult to get a job as a junior. And what do we need? That's right, start working professionally as soon as possible. But if you have confidence in yourself that you will go through this path, that you have enough perseverance and patience, everything will pay off.
In short, there are two win-win options - php and java. But you should remember, whichever way you go, the language itself will take a smaller part of your preparation time.
And in conclusion, I will say - stop torturing yourself with a choice, googling on the topic "what to choose." Stop wasting time on this. Start programming. Right here today.
Think again, do you need it? I myself switched to developers after 30, but I've been in IT since school.
Commercial development is not fun, but in most cases it's a routine, deadlines, etc. You should not go into the industry if the ideas about this profession are too romanticized (under the influence of films, articles, advertising), i.e. in expectations: beautiful code, big money, success. Disappointment will come very quickly, as in one poem: You will see that the Goal is far and empty, And the Road will always be.. I often see this disappointment on the faces of white people who come to us for an internship. Be ready for it. As for the technical part of the question - see the market.. Good luck!
Hello!
A programmer is a person who is not afraid of problems, who loves to solve problems, loves to ask questions and answer them.
For you, the key point is to "ask questions" and these questions, first of all, you must ask yourself and answer them yourself.
There are two types of programmers:
1. Programmer-theorist. A person sincerely believes that there is a book that one has only to read and he will become a full-fledged developer who will be gladly hired. Then he realizes that he still needs to take courses, and there are a couple more books and a couple more courses, and also find a mentor.
2. Programmer-practitioner. A person who sees a problem asks himself how to solve this problem and forms an answer.
-- A theoretician, even after five years of studying courses, books, documentation, will hardly write something more complicated than Hello World. The learning process itself is long and inefficient. But if you have a phenomenal memory, then after a couple of years you will have a strong base.
Hint:
--Practitioner.
?? Ask yourself what problems you want to solve.
== I want to write websites.
?? How to solve a specific problem.
== Everything is information. The site is information, the browser displays this information. So you need to find out how the browser does this and what information it can display, how to format this information.
?? What should I use to solve this problem.
== The technology stack has been unchanged for decades. This is a hypertext markup language that allows you to tell the browser where the paragraph is, where the picture is, and where the heading is. Cascading style sheets that can change text color, position elements and blocks on a page, add animations, and more. A programming language whose compiler is built into the browser, which is responsible for monitoring the user and generating analytics and statistics based on data, capable of managing the content of the page.
?? Update knowledge on tools and problem solving.
== Subscribe to famous programmers. Learn modern tools that make life easier for a developer. Think carefully and do your research before trying new technologies. Based on the results, draw conclusions about the effectiveness of the implementation. If the increase in efficiency is large, then feel free to use it. Use quality code editors. And as always, ask yourself questions. Create criteria and search by them.
I realized that I wanted to be a programmer when, in my student years, I worked in a water utility at a water intake station, as a watchman. There was a huge reservoir and pumps filling it. The tank is full and the water pressure is good, the tank is empty and people have no pressure or water. The driver must maintain the fullness of the tank with the help of pumps. Here it is important not to overdo it, overfilling the tank is dangerous. At this job, I automated all the work processes of the driver in my head. The thesis was a project to automate the operation of pumps and reservoir sensors and other things. The driver in this situation did not lose his job, but moved to the position of administrator. Statistics, reports, errors, manual control if needed.
Most importantly, feel free to ask Google. The ability to ask the right questions is honed only in practice :-)
Remember that the mental labor of a programmer is comparable to the physical labor of a miner. Answer yourself the question: "Do I need it?".
Hi all! I am 28 years old and I decided to start learning programmingHello, 28. This, of course, is not 42, but the first results, provided that you have certain abilities and aspirations, will manifest themselves at best in five years.
What majors in programming are the most open and friendly to juniors?None. In this area, +5 years, very tough uncles from Pakistan and still from India suck. Without real growth, but they sculpt excellent code. You won’t be able to compare with them even in ten years (and don’t, please).
What are the development prospects?
What specialties can you learn to junior in the shortest possible time?Depends solely on you and your abilities.
In general, what should a junior know and be able to do?Depends on the specific place where you go to settle down.
To what level do you study?Up to what you can, until this you learn. There is no limit. Even after ten years, in seemingly up and down the studied technology, you can learn and study such an abyss of new information that the trainee never even dreamed of in a nightmare.
What are the chances of getting a job as a junior in C++?Lower than in the case of more modern languages.
And, given the complexity of the language, should I consider this area at my age?Years are nothing, experience is everything.
somewhere there was a lot and it was not clear whether it was necessary to study so much.Learn everything you can get your hands on.
I would like to know the most complete list of really necessary topics and disciplines of computer science.You take a course at MIT and look at what they have been teaching for the last 20 years. That's all: knowledge, understanding, skill - the starting point for starting to look into the CS area from the side of the trainee, who went into the neighboring building for a smoke.
Do MIT and Harvard's Introduction To Computer Science courses cover the need for theory?Does the need for pituitary surgery cover the lengthy retelling of a drunken philosopher on the topic "18th century surgery for idiots"?
What else from the theory, besides the basics of computer science, does a programmer need?Everything you can get your hands on. The more you know, the less you will need to study on the ground, the wider your scope will be. If you can compete.
Would you like to know the most complete list of really necessary mathematical disciplines for a programmer?You take, for example, a top Russian university and study thoroughly the discipline of Applied Mathematics. Probably, for the majority of shape slaps in the most typical situations, this may be enough.
How many languages does a junior need to know?The bigger, the better. The deeper the better. You can not take some area or language and stay in it until the end of life. Otherwise, you will limit yourself very much. Not to mention the direct degradation of the interaural ganglion to the level of adinesniks ...
What language should I start learning from?The one you liked the most. That is, you took it, poked it, looked for books, read the first 100 pages of each, looked at the project code on github and you felt that “the wand chose you”.
Recommend the highest quality well-researched courses for learning recommended languagesThere are no such.
How much do versions of the same language differ from each other? How long does it take to learn a new version of a language?Directly depends on the language / framework and how the authors meant backwards compatibility.
Should I start learning C++?Take something more modern so as not to force yourself with incomprehensible restrictions.
The following article was recently uploaded to Reddit https://m.vk.com/@myironcomp-programmirovat-s-nuly... here they described in great detail how to learn Japanese.
I don't learn C++. The language is complex and costly to enter
Hello, I have the same situation as you, only I'm 24, and after graduating from a magician in economics, I realized that I want another, that was 4 months ago. I will answer your questions based on my limited experience.
B. 1 - here it is definitely web, and the front-end, the number of internships and vacancies for the back-end for beginners is much less, at least in my city (and there is mostly php), and after python this language is unpleasant for me.
B. 2 - I also tried to find out what ideally you need to know, what ideal books and courses are. There are none, one can come to me, but it will seem boring and stupid to you, here you can only try it yourself. I really liked the courses on the courser, but there are good courses in English. Advice from my own experience - it’s better to start with Russian, I know English well, but at first you need to understand quickly, but in a foreign language this is not so, plus then a little difficulty in distinguishing terms due to translation.
B. 3 For an introduction to programming, I started with python, and most likely I will advise everyone to start with it, version differences do not interfere with understanding the code on different versions after learning the basics. It seems wrong for some to start with a dynamically typed language, but python is strongly typed, which means you will definitely understand the difference in data types, in general, I consider python the best language, because now I'm studying java script, and it's already ... a strange language)
Separate advice - as soon as you have learned something, you must either immediately try to apply it on YOUR example, or if you understand that you can do it differently or do without it, then just know that there is another way.
Look at the number of internships in your city on the same hh ru. For example, I have a lot of great Java internships, and I regretted not learning this before I started my journey.
Such sites as habr, toaster, stackoverflow really help, and real communication with an accomplished programmer will help even more.
I wish you good luck, because I know what you will be))
You need to squeeze the slave out of yourself drop by drop.
Programming is a way of thinking. Can you think? - means guess. This is the main rule. Get ready for a lot of thinking, a lot. There are many relationships in programming. You need to develop the skill of seeing the end result and your role in it. Without this, you cannot work.
I’ll tell you one secret that no one writes about at all, but if you like programming, you will understand (not every secret can be understood right away) - error handling. The user is always waiting for the program to warn him that he, the user, is doing something wrong. Therefore, a lot of time in programming is spent on error handling. According to my feelings, 90 percent of the work of a programmer is error handling. And in network programming without it in any way.
And it will be like everywhere else - no one will chew anything for you, mess around like with a written bag, etc. Learn to solve the problem yourself, keep a diary (highly recommended), technical, of course, with screenshots and description: problem, screenshot, solution - screenshot + text, screenshot, screenshot, screenshot (look for a good screenshot). Reread your notes periodically.
Set a goal - every day to learn at least something new that will surprise you. I was surprised - I wrote it down! The day was not in vain. More than once surprised - super. I wrote it down again. In a year you will accumulate a good base.
Improve in tools, but do not get hung up, learn new things. Perhaps one day you will start writing your own instruments.
Personally, I like programming because it makes it possible to communicate with different people of different professions. And together we do something new. Great.
B1.1. There is no specialization in programming.
B1.2. The lower the entry threshold for a language, the faster you can get the tools you need to work.
B1.3. Know the programming language, OOP, data structures.
B1.4. June on the pluses to get a job if you wish, the chances are close to 100%, but whether it's worth it - decide for yourself.
B2.4. Mathematics is not needed by the absolute number of programmers, it is taught to pump thinking. Usually it is linear algebra, analytic geometry, Boolean algebra, terver, matan.
B3.1. One working language is enough.
B3.2. You need to start with C, it gives a good idea of what is happening in general. Then you can learn anything.
B3.3. Select a language and ask a separate question.
B3.4. Depends on the language, e.g. Swift regularly breaks compatibility, but C++ doesn't. Switching to a new version (that has lost compatibility) usually takes a couple of days. If compatibility did not break, then it is not a problem at all. For example, I still don't even use C++11 for the most part and it doesn't interfere with my work.
B3.6 It's better to start with a language without OOP.
Learn in order:
Html, css, javascript, php, sql and database design, laravel, any book on algorithms and data structures.
This is about 3 months - 2 years depending on the pace of study and you will be able to look for a job in php + laravel.
I'll try to answer unconventionally - based on my experience.
Although in the IT community they will spit on me for this.
Look towards industrial automation.
It is there that there is less code and more effect, and even drive, when a system of hundreds of kilowatts is weird ...
In addition, errors are visible to the naked eye.
Programming language - Ladder (base). It is better to teach in relation to Siemens (Step7) - we have a lot of it.
Siemens had many teapot manuals, and in Russian.
The very approach to programming in industrial automation greatly changes thinking.
I don't consider myself a fool, but it took me a couple of months to assimilate the concept.
The competition in this market will be less than for classical programmers.
Improvement - first STL (as Siemens calls it)
Next is electric / electronics, then pneumatics, then hydraulics (the ability to read diagrams).
By the way, you can see my article
WHERE THE "INVISIBLE HAND OF THE MARKET" LEADS
Wow, how difficult everything is...
To learn how to swim, you first need to go into the water... It is difficult to learn how to swim while standing on the shore.
If I had bothered so much at the time, I would not even have started.
You definitely need to learn how to solve Olympiad problems, manipulate data, build simple algorithms, master the basic techniques.
At the same time, you need to learn the language in which you will program. In my opinion, the easiest language to learn today is JavaScript. You need to solve at least 50-100 tasks, this will cover the main cases, which is more than enough for a start. I usually ship with this to codewars.
Next, you need to learn recursive decomposition. Soft skills decide, because not always you will be downloaded a well-thought-out finished task. Much more often you will have to find out, ask leading questions, clarify, re-specify.
From the confusion that you can find out, you will need to build a model, build connections between elements and their relationships. Then this business will need to be decomposed into separate small parts, solve each of them, debug, test, and from them, like from Lego blocks, assemble a working application. This process is recursive-iterative, but if you suffer for a long time, something will work out.
In the process, you will also master the infrastructure, replenish contexts, acquire additional knowledge.
In any case, the process is for several years, until you feel confident and can actually solve the tasks set, and, accordingly, get paid for it. All this time you will need to live on something.
If you speak English, then things will go more fun, because. There are an order of magnitude more adequate materials, documentation, training videos in English than in Russian. If not, then sadness and sadness.
Something like that. The road will be mastered by the walking one, but you need to constantly take the next step.
And finally - in programming, RAM is very important. You need to keep a lot of facts in your head at the same time, otherwise you get garbage. So pump up your RAM...
Depends on the background and the amount of time you have to learn programming. But if we assume that it is zero, then I would advise studying in approximately this order:
1. Mathematics (higher, university; partially; if)
2. CS basics (including the computer device, its operation)
3. Programming languages (Pascal , si, then the language that will be needed for future work: js, java, python, etc.)
4. SQL and databases (if you haven’t studied it before)
5. Necessary frameworks and environment for work (any springs, jangs, angular, and from the environment: git, jira, IDE, project build system, etc.)
Then you need to look at vacancies, go to interviews and pull up what is missing.
In short, yes.
And how to study - my IMHO - better than a book, but interactive courses (online, offline), various video courses, etc. can also be effective. Here, everyone chooses for himself what suits him more (but without books or good articles, as well as documentation - in any way).
By language - depends on what you choose: web front, web backend, mobile, desktop, etc. For popular languages, statistics are constantly published everywhere, so you can choose one of them. I do not think that a beginner should choose an unpopular language (c ++ is also one of them now). Popular ones are java, js, php, python. It seems to me that the easiest and fastest way to start is with php, although I haven’t done it for a long time, so I don’t know exactly how things are there. In addition, they say that he is also losing popularity, so this may not be promising, but this should not worry a beginner. The main thing is to get some experience in commercial development, and the language and scope are not very important.
ZY Still somewhere between points 2 and 5 it is necessary to pull up the English language well (for reading the original documentation, as well as books and articles in English). Ideally - to an average level, but a minimum - to a level that lies in the middle between average and low (reading texts in English with infrequent use of a dictionary).
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question