Answer the question
In order to leave comments, you need to log in
The goal is WEB Full-stack. Is the training plan tolerable for a beginner?
Input data:
- Guy, 22 years old.
- I study in college, in absentia the first course.
- After the end of the first year, I want to start working.
Who is already working in the field of WEB development, tell me how do you like my training plan? Maybe something is missing or
vice versa, something is missing?
UPD: confused in terms
Answer the question
In order to leave comments, you need to log in
If this was a question "is this a good roadmap for asp net developer", then I would say that this is a great roadmap (except for python, php, freelance, and in principle the order of study).
A lot can be learned in parallel (English)
Something can be postponed (digging into algorithms)
Well, I'm not sure about the sources of knowledge - the same "Grokay Algorithms" is too much for a book to oil.
But according to the devops, I don’t see anything here.
For devops it is important:
1. To understand how the development process works. Ideally, you should also be able to write code
2. Be able to work with ci/cd systems. Gitlab, Azure devops, Jenkins, Teamcity
3. Be able to work with git
4. Be able to work with the Linux console, and with Linux in general
5. Fumble for docker and k8s
6. Understand that devops is a set of practices, not a position.
I studied well, but from the knowledge you really need mathematics (developed logical thinking) + English, this is noted correctly. In the rest, there is a lot of superfluous and leading to the wrong steppe. I worked in telephony, but I also had to move to DevOps, because. no prospects. As a result, in life I had to learn a bunch of everything UNNECESSARY (for example, different telephone exchanges, which took a lot of time). If I could immediately get a job on Linux, I would not have lost 15 years. Therefore, I write to you about what is really needed. Do not waste time that is not unnecessary, and so you need to learn VERY MUCH. You need a broad outlook.
Install Pop!_OS operating system (based on Ubuntu) at home and get used to working in Linux. Install qemu, kvm, git, ansible, docker, docker-compose there. You will have enough virtual machines to study the material. Ansible on the machine itself as a control node, and configure virtual machines with it.
Install VSCode Insiders Edition. It is good to work with code in it. There are many plugins out there. And for editing yml files Ansible, Kubernetes), for Dockerfile, and then it will come in handy for programming.
Install Obsidian. And write all the documentation there, collect all your knowledge there! Train yourself to take notes and translations. The writing format is Markdown, just the one in which README.md programmers write. https://obsidian.md/ (installed on different operating systems)
In order not to learn too much, I write what to learn:
Good knowledge of Linux - William Schotts - Ok, find the book RHCSA8 Sander van Vugt (even in Russian there is, I think you can search), prepare and pass the RHCSA exam, gives a good base on Linux. There are also his video courses, I prepared for them. (you can get it too). The second good author is Andrew Mallet. Practice on CentOS8 virtual machines (they have a problem with ng support, but you can also use an unstable release, you're not in production). Abroad, now the alternative is Rocky Linux. On virtual machines, you will see how to work with the yum / dnf package manager, on Pop!_OS - c apt.
In Russian on Linux courses by Kirill Semaev on Youtube.
Ansible - configuration management. Preparation for the RHCE8 exam (it is after the RHCSA), the same authors (there are books). Andrew Mallet thoroughly understands Ansible, you can learn it at the same time as Linux, because he uses Linux grep commands and others to analyze configuration files. The native documentation on the Ansible site is very good. Also download examples of roles on Ansible Galaxy.
In Russian, Astakhov's courses on Youtube.
Git - here's what you'll find. It is part of the Kubernetes Base from Slerm, there are enough materials. Read a series of articles here https://css-tricks.com/creating-the-perfect-commit..., 7 and 8 parts will be posted soon. But first, look for video courses in Russian (everything is there). You need to watch the video to make it clearer, because at first it’s not clear how you work like in the same folder, but you can be in different branches.
Gitlab - As an option, create an account on Gitlab.com and try there. And see the .giltab-ci.yml files and related include files via Gitlab's include itself. Learn how to include variables, anchors, extends, needs, rules, needs (by the way, now you can do it without stage only through needs), the difference between caches and artifacts.
Jenkins, teamcity is used, but we have Gitlab more often... Learn what is used more often. You will not be able to master all the instruments physically. As you settle down, you will master what is available at work.
Docker - you can also learn at home. Enough courses. Also try running multiple containers in docker-compose.
Also, you should at least know how to install MySQL (you can then expand on other databases), add databases, backup, create users, grant rights.
Try installing Nginx + php-fpm + mysql (or MariaDB) - for example, to make Wikipedia a simple BookStack work. Write the name of the site locally and check how it works, backup the database, then delete everything and restore it. https://www.bookstackapp.com/
Kubernetes - difficult without the base mentioned above, but you can subscribe to Slerm's youtube channel, they also have periodically free courses with the possibility of practice. At home, you can only use minikube if there are few resources. It's optional, even the first 4 items.
By programming languages. At least learn bash on Linux. Python or Go - you can do it much later, this is already for programmers. For you, this will be a plus. But in the appendage. Otherwise, you will go to the profession of devops for a long time, or rather until retirement)) Now the demand is very high!!!
So, in summary: Linux (+bash), Ansible, Docker, git - must have, Gitlab, SQL - desirable. Networks are very dependent on work. The main thing is to understand what ip-addresses, dns, mask, gateway are, understand how to configure a firewall and network interfaces in Linux, understand what to enable (which parameter) so that Linux starts routing traffic.
Kubernetes, Terraform are already a level higher.
Then you study questions for interviews (also available on the Internet), and some questions are especially often asked at social security services (I recently went through social security services myself). You go through 10-15 interviews and level up, write down all the questions you ask and prepare for the next one after each social security service. They can also give a test task, if for a junior. Ask for time to complete.
Here grow and grow to infinity.
Sorry for the indiscreet question: why are you at 22 only in the 1st year of college in absentia? It's not even a university.
And what is a short course in school mathematics? You didn't go to school, did you?
DevOps is not easy, so you need to understand well what kind of base you have, whether you can pull it off.
UDP. Just saw.
If the goal is not DevOps, but web fullstack, then maybe your plan is more suitable. But you also need to keep in mind that FullStack is a lot. Go front-end developer first. If you want to learn what is in demand, then JavaScript, for the front-end vue.js or react framework. If you want to be a back, you must already have a good knowledge of databases in addition to the programming language itself. Of the popular ones, JavaScript (node.js) is also popular. Python and Go are also popular. And if you really learn, then Go, not C #.
Everything is very bad.
And now in more detail.
1. I recommend reading several articles about what a devops engineer is, because the concept of devops methodologies and devops engineer are fundamentally different.
2. You have a lot of books. It's not bad. But you don't see the practice at all. This is bad.
There is a note that "it would be nice to have a second project", but no idea what kind of project.
Some kind of pet project that you will write not because you have an idea that you want to digitalize, but simply because "you need a pet project for your portfolio"?
It doesn’t work like that, more precisely, such a pet project will be more like a coursework that you don’t understand, which you won’t be interested in developing, looking for implementation options, understanding what result you need. On the other hand, devops cannot exist separately from the project...
3. In general, there are no technologies and practices that are critical for devops, namely, everything related to administration. DevOps engineer, as a position, it's more about administration, not about development. Yes, this is about the administration of what is needed in development and you need to understand how developers work, but still, the main skills of an engineer are automating the infrastructure for building and running applications.
PS I see that the topic has changed from DevOps to Web full stack - in this case, my answer is no longer relevant, but perhaps because of it the topic has changed =)
For the most part, DevOps is about system administration, pairing and configuring (mostly scripts and languages) various software and operating systems, the ability to integrate cloud services and build systems for deploying software. This is not so much programming engineering as the ability to understand the zoo of technologies and practices. Something like a mechanical engineer, a jack of all trades. As correctly noted by others - infrastructure automation (for IT enterprises).
Emphasis is needed on knowledge of OS tools, comp. networks, information security. To understand how to build systems from ready-made components.
C# will most likely be superfluous, but Python will be very needed more than once.
Design patterns - for general education, to understand where the legs grow from.
You need to know how DNS, HTTP and other protocols work. How to integrate various cloud services, build systems for deploying software, etc.
SQL is not so much a language itself, but how to optimize a query plan for a DBMS, backup and restore data, replicate and other DBA functions.
Web development, compiler theory and algorithms - probably not. If necessary, you can always open a book, article or video on the Internet and supplement your knowledge.
If you plan to work after the first course, then the plan should definitely be revised, because you simply will not have enough time to study everything that is indicated in the plan.
I would also remove a few items in principle: C#, Python.
If I were you, I would focus on point number 7.
HTML, CSS, PHP, JS, React JS, TypeScript - these are exactly the skills that a Fullstack employer will expect from you.
If we return to the moment that you don’t have much time, then I would also remove PHP from this list. For the remaining time, it is better to focus on one thing: Front or Back.
Items English, Computer Science, Software Engineering, Algorithms & Data Structures, Databases can be studied in parallel with the Web, but most of the time should still go to the Web. And not just for the study of theory, but for practice.
Let me explain all of the above.
If you still go according to the plan that you have at the moment, then after the first course you will not get a job anywhere. I guarantee.
A solid study of only everything that you indicated in the Computer Science paragraph, in a good way, should take several years. And given that you have no experience in programming, this material will be given to you very hard. In doing so, you will not get closer to your goal of getting a job. This will lead to a loss of motivation and self-confidence.
And after Computer Science, you still have 5 more points ahead, which you will need no less time to study :)
Of course, all these points are very, very important for a good specialist, but based on your goal and your level, for you at this stage it would simply be a waste of time.
Summarizing.
I advise you to study in the following order: 1) WEB (HTML, CSS, JS,
React
JS)
2) English
3) Databases
4) Algorithms and data structures
the same Computer Science and Software Engineering.
And yes, I advise you to make Linux your main working system.
For devops, 90% is not needed here, but there is little needed (from what is needed: networks and python). Astakhov showed a good plan on his channel https://youtu.be/AxCgZ7yUKrU - this is really something that comes in handy for a devops in everyday work.
You are too smeared on technologies, if you want to become a full stack, then choose two or one language (js) and develop in it.
a) the first point
1) Here I see you have javaRush - throw it away, you don't need it
2) Operating networks and systems, it's not an option to read from the book, just install any linux system for yourself and use the terminal. Along the way, there will be questions and plugs - google.
3) Networks and programming languages , do you really think that you do not have enough dry academic knowledge in college?
===========
b) second point
1) Software engineeringthis obviously needs to be read when you are already working as a junior, while there are no examples in your head, it will obviously be superfluous for you
2) python / C # you already decide ...
In fact, you can immediately start with web development.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question