Just curious, do you say “continue” because a lot of folks say the writing on the wall and programming is going away (it isn’t it’s just going to change dramatically)? Cause ya, that’s what Prime does to me too - helps me cut out the noise and do it for the love of it!
@@saysthetedd I'm still what i would consider to be at the very start of my journey of becoming a developer but for quite some time now i simply didn't have the drive and motivation to continue learning so I've been stagnant for the past few months but Prime is kinda helping me get somewhat excited about learning again. Also, i do hope programming isn't going away, that'd put quite a damper on my future career plans! I wonder, do people say such things because of the recent push of AI?
@@jogmanson9510 oh okay. Well, please, keep going. Ya, lots of the narrative is AI will render certain positions unnecessary. Don’t listen to that - keep watching Prime, feeling excited and working hard. Programming is about more than writing code and the foundation you’re building now will only give you a better understanding of how to adapt as things do inevitably change. And remember: thou shalt not open vscode
AI will make developers more productive, but will not replace them for a while. A developer needs to read/understand/combine/refactor the generated code
@blork I would add: consistency > motivation. If you consistently work towards your goal of becoming a developer, even when you feel overwhelmed, you will get there faster and have the habits to sustain a healthy career.
Here's my recipe: 1. learn C 2. write segfaulty code 3. feel the pain 4. learn Rust 5. write safe code 6. feel the joy 7. improve your social skills 8. start a cult 9. once you have followers by the thousands you can apply to jobs, you're too influential to be ignored
I went from not knowing HTML to hired as a SWE in around 15 months. I know people who did it faster than me but honestly even if you’re hired after 6 months you won’t know much. I think even with the poor economy over a year is a realistic expectation if you’re putting in a ton of work everyday.
This is 100% true. Im self taught, but I got lucky and got my first dev job in 3-4 months from starting to learn. I was hired because it paid realllllllly bad, but it was a job and experience. I was HORRIBLE my first 1-2 years, I was basically still just learning but luckily had a job and just learned on the job instead of self studying. These expectations of being a decent dev in like 6 months is not real at all. Ive been a dev for about 5 years now and I am 1000x times better and close to senior level. I've developed passion and keep studying through most my career. Just keep going. I also make 4x as much as that first dev job, if thats any motivation to others.
You guys are just bad. Don't extrapolate your failure experiences to other people. A lot of people come into tech because they are predispositioned to it and are generally good at problem solving/engineering. You don't need years to be a good dev. Good devs are made with the right mindset and tools. I found a *high paying* (for a first job at least) swe job in my country(Europe) after 4 months of learning, almost from zero. I went to *middle* level interviews and my actual job title is closer to middle now even as my first job (in my country it says "senior" on paper but it is close to middle internationally). I did study for like 5 hours a day, but still this is a good result, isn't it? For some people it may be "hard", but if you didn't *force your way* into IT, there is nothing especially hard about software engineering. That, or you had no idea how to learn stuff properly and effectively. Don't assume people are failures, 6 months is a good spot to become a relatively strong junior dev if you really know what you are doing.
@@twothreeoneoneseventwoonefour5 Could you give us a break down of your 4 month study curriculum that took you from almost zero to a professional software engineer? e.g week-by-week with what topics you covered each week.
@@ericgithinji5140 First of all I am located in Europe(if that changes anything). About the curriculum, I didn't have it. I mostly used a couple of udemy courses, youtube tutorials, learned stuff there, then did my own projects. If I had a need to refresh/relearn something, I could google for docs or youtube tutorials (just make sure that they are up to date). I studied for around 4, maybe 5 hours a day on average. But I watched a lot of youtube aimed at developers in my field(fullstack webdev) as well in my spare time. I think that the most important point is to stop confining yourself by time at all. You asked for a curriculum, but it is not effective to have it in the first place. If you desire to learn something, learn it all you want when you want. When you feel ready, move on to the next topic. Usually you should move to the next topic when you know around 80% of the information about the topic. This is important, don't try to "master" topics when you are still a beginner. Learn the basics, maybe some advanced stuff, but don't go overboard. 80% is enough to move on. You can come back and "become a master" later when you already have a job, for example. Getting a job of course does not require you to be a master, that's why. Now about what time it took me to learn the topics, I can give rough estimations. But have in mind that I also had some little experience with python(and programming in general) beforehand(I did like 50 hours total in past). And my chosen field is webdev. So stage 1: HTML - a couple of days. You can skip most of the stuff. div span p a, maybe semantic html is all you will ever need. CSS - a week or two for the basic concepts. Learn about the box model, flexbox. You can skip flex grid for now, but you will probably want to do it later. JS - a week or two for the basics. If you didn't have experience with programming, probably 2 weeks or slightly more I guess. You can skip OOP for now and learn it when you have the need (it may be a long time until that). UI Framework (frontend): I would recommend React or Vue. React is more popular. 2-3 weeks. Learn about components, hooks (the basic reactive concepts), project structure and how the rendering works with these frameworks. Backend(even if you only want to do frontend), usually NodeJS - another week or two. You can and should combine your frontend learning with backend learning to see how they connect, but maybe better to do it at stage 2. At some point when you feel *somewhat* comfortable with JS, learn Typescript. You don't need to be a master of JS to learn Typescript, not at all. Preferably learn Typescript as soon as you can and use it for all your future projects from that point. Typescript is around a couple of hours of learning to get the basics going. A couple of hours and you will never return to JS. You can even learn JS, Typescript, Frontend(React?) and Backend(NodeJS) irrespectively of each other if you want. I did it like that. Make your learning fun, if you think you can learn React or Node right now, then do it, you don't necessarily need to "finish" learning JS to learn them. Return when you have the need. Stage 2: Learning in stage 1 is mostly done with tutorials and stuff, but you can also experiment yourself *just a little* there, but don't do much. Because after that initial learning block, you should be able to create your own projects freely. In stage 2, create a couple of projects *from zero* , make a portfolio. If you need to relearn/refresh your knowledge, do it. Job applications in some countries also require you to know Data Structures&Algorithms so it may be time to learn them now if you need them. I got a job without them, my job interview happened after I successfully did the take-home task they gave me.
Started learning programming at 15 yo but never left tutorial hell. Got frustrated and stop doing it for enough time that all I know is basic programing logic. Always wanted to become a programmer and prime is motivating me to get back on the tracks.
I've seen some cool programming RUclipsrs in this budding coding adventure of mine, but no one comes close to motivating me as much as this dude. I'd love to get this guy a beer and just talk about random nonsense because I bet he's amazing company in general
"build something" is always a good advice. it goes along with "write something" and "play something". you just have to start and find passion in it. also, it's how i started back in the days when books and not internet was the way to learn.
Tell Nate that this isn't a post, that's a BANGER! I've been a dev for a year and I haven't done half of that list, but I'm that guy who goes "ugh where's my passionate fire at"? This is actually good advice to relight my fire, and to avoid succumbing to the mediocricy of my environment 🔥🔥🔥
Coincidently started learning Go 3 days ago and I really love it so far. I'm already very comfortable with Next JS but I wanted to pick up a dedicated server side language and I'm really happy with my choice.
I always enjoy these videos. Especially agree with the "STFU and do it part" ( I paraphrase )....it applies to so many things in life. Going to the gym, starting a business, learning to code, reading a book. Just. Shut. Up. And. Do. It.
+1 for trying Arch as your main device (at least for a while). I learned more in 2 weeks flailing around in a fresh arch install than I have in some 6 month periods doing regular SWE. Also - I had way more fun figuring out things like how to control screen brightness by editing a file (then automating that in my bashrc) than I can explain to a normal human.
I think suggesting to work in a Linux environment is just a waste of time. Just pick the language you want to get a job in then build something it. You don’t need to edit text file outside you ide The GitHub advice is good. Use it for your first project. Lastly. Consider getting a professional service job and work into a Software Engineering job.
@@BusinessWolf1in Linux, everything is a file. There's a file that contains your brightness value somewhere. It's not a real file that exists on your hard drive, but rather the kernel pretending that it's there to every program running on the computer. You write a new value into that file, this sends a command to the kernel that brightness has to change to this new value.
1:07 - Single best decision I've made in my career. I don't use Arch any more (rn I use Kubuntu, because it's easier to maintain and I don't really want to debug my OS from time to time, when some update makes a breaking change in my workflow), but it basically kickstarted my understanding of computers. I've dropped out of university after 2 years (CS), because I barely knew what was actually happening when I was writing code. Then I started again, this time Linux from the very beginning. It finally started to make sense when I was writing basic C programs, and I knew what actually compiler was and what it was doing, what exactly is happening to make that compile, whole linking process etc. Basically it taught me to think and try to understand, instead of just finishing assignments in as little effort as possible. The beginning was the worst, but then at the end of third year me and other people using Linux exclusively for their programming were the only people who knew what they were doing, and not just putting their code in some black boxes.
For a whole 2 years of me using arch, I have never had any problems with it that I didn't cause myself. It was probably a "you" issue. Also I don't understand the "maintaining" part. Are we really using the same linux? If anything Kubuntu (and the whole kde environment) was more buggy when I tried it than Arch with wm for example. I use arch with awesomewm and ALL the maintaining I ever do is: "write 'paru' in terminal (which automatically updates the system), all done". What maintaining is there to do again?.. Right, there is nothing. You don't sound like you had actually used Arch for more than a week or a month at best.
@@twothreeoneoneseventwoonefour5 Dude, I've used it over 2.5 years. The maintaining part is don't wanting to download 2GiB dependencies every weekend. There was also a time at my job I couldn't open MySql workbench, because some library that it depended on was updated and it refused to launch. If you're using only OSS? Sure, it probably never breaks. But if you're using some proprietary software that depends on certain version of the library, and that library gets breaking update, prepare to waste some time downgrading to certain version of the library, and pray that your DE or something else you really need is not dependent on that library. It's great it's been working for you whole the time. But once you waste some time when it does, you will see my point.
@@twothreeoneoneseventwoonefour5 Many people don't actually "use" it, they tweak stuff just enough for their need and afraid thing broke so they don't explore as much as before. I get it, reinstall stuff and read a full page of document is pain in the ass. That is how you have dude use vim for 20 years but didn't know much as some guy pick it up for a few week.
I have learned so much more simply by using various linux distros than any class or course has ever taught me. Everything sucks and is difficult at first but then it all starts to come together and I can never enjoy the beautiful animations of mac again.
Great video! I should start building more random projects, I think its a great way to learn a little bit about different topics. BTW at 12:00, your cursor seems to move back by 1 character each time you reopen Vim :p
There was this art study done on some group of 30, they asked 15 people to paint a masterpiece and the other 15 to paint as many works of art as possible. The people who smashed it out got much better at art, the people who were tasked with making a masterpiece did not do nearly as well. I like the point on just making any code, doing something and working on small personal tasks gets the wheels moving.
The niche you get into may be particular types of software. I've been doing real-estate related software for years now and currently am working with lending companies doing reporting and calculations and whatnot. You may end up in games and maybe a particular style of game. You also don't have to be in the Linux world. I deploy to Linux for some companies, but always develop on Windows. It depends on what you're building. If you want to learn how to set up a server, buy an off the shelf computer or build one and set it up. Learn how to install and configure Apache on Linux or Windows or learn how to set up IIS on Windows. I use IIS these days because it's not the dumpster fire it used to be and it's super simple to get going.
Unfortunately in today's world if you don't have projects that go above and beyond, and only write code to do simple tasks, you'll never get past the application phase. Especially entry level jobs with 500 other people.
I'm in my 2nd year of CS. Never had any experience prior to uni, so last 2 years were really tough for me. What's worse, I couldn't really spend desirable amount of time on learning and coding what I want. Instead, I was sucked in by some humanitarian useless subjects that took unreasonably huge amount of time. And you know what? After these 2 years I still feel like I know nothing. Like, I can make some cool small Python scripts or some apps in java or a bit of embedded C, but that's it. If I go to an interview and I am asked what algorithm I would use to solve a certain problem, I will answer, but if am asked how to implement, i will stall. I'm not trying to justify myself, but instead of memorising how to do, I know what to look for. Unfortunately, I won't be hired for that. I don't how people become SWE in a 1-year period and sometimes I truly think that something is wrong with me. I hope at some point Prime will cover how people learn programming so efficiently and what kind of steps should be taken, because I feel like after 2 more years I will still be too bad to be hired.
Well I am planning to do a year master conversion and I think there were will be less on theory but more on software and practical work, however from people that done it they say that it's twice the amount of work than in undergrad. Therefore it's harder but still doable.
I'll tell you how because technically speaking I did, focus on only 1 field and kill curiosity outside it, make 2 step by step plans, one detailed and one super simple, then execute it and try to fail fast and a LOT
Well, its because it is a university. I am basically in the same shoes as you, in the end of my 2nd year of SWE at uni not knowing much about stuff (but i will say that there were useful classes as OOP, relational databases, c++ 101, java and application architecture 101). And i do have the same problems -- the philosophy, psychology and language classes were not my cup of tea, but they are the reason why university starts with UNIVERS - it is meant to give students universal knowledge about stuff with some leaning towards a major. Be strong king, you'll eventually be the engineer you aspire to be.
First two year of CS education is like 70% math 30% CS (also heavy stuff like Computer Architecture and Distributed Systems) They are not mean for job yet, usually CS grad starting to employable after 3rd year, you learn many stuff that use in the industry. Are bootcamp grad learn in 12 month can do the job ? Absolutely, but in the long run they have to learn all the stuff that CS grad learn in college to advance at job. If you are CS student, keep studying don't let FOMO control you. - Me, a self taught dev. I have to learn applied math and all CS stuff if I want to keep my job too.
I read the Go book about 3 times and man, it's true good. It exposes you to various pragmatic concepts used in low-level languages and but not found in most high level languages. Ex. Pointers, interfaces, etc.. Go is truly a gem but pretty boring language. Soo simple.
the thing that gets me is it's been 1.5 years and i am yet to make something remotely useful. yeah i have done a bit of leetcode, tree algorithms etc. i have implemented min heap maybe that's a bit useful. but like, there's nothing that i personally use often. i used my a few lines of python script for downloading RUclips videos the most. it feels pathetic. i tried to build a todo app because Microsoft Todo sucked so bad but then i found a better productivity setup and i had to abandon it. i learned a lot of things but there's nothing useful coming out of it. i got interested in AI and started learning but it's just theory after theory. wherever i go there is theory. i get it it's good foundation and makes it easier to understand it but it doesn't seem to end. i just want to make something i am somewhat proud of.
I'm still in uni but it makes me happy that I've already done so many things on this list at least partially. And I plan on finally building something concrete in my next holiday.
I spent about a year stressing myself out about how to code before actually building something lol I wish I would've taken this approach from day 1 to just get my hands dirty, build stuff, and take each day as a new opportunity to learn something.
Love it, great motivation! I've been looking at that automate the boring stuff but i don't want to deviate from learning JavaScript until i have a better understanding. Maybe next year
Don't you think there is something off in suggesting to learn version control before learning the basic principles of programming ? Maybe I missed something.
Can we call prime a god at this point? This man is forming the way I think, way to handle ADHD, decision making, and billions of other things that can make one take full control of his life and achieve any wild idea he/she has (amazing swe hints aside )
I went through a bootcamp and was lucky enough to find a job (three months post graduation, I think my personal class ahs about a 50% placement rate). Anyways, I sort of crashed after thinking or programmign basically at all waking moments. But after the crash, I felt sort of lost as to how to go about deepening my knowledge since my work is pretty limited to front-end only. I have already taken some of these tips over the last week, and I'm pretty excited to continue learning, get my hands dirty with python and the like.
My biggest problem is always the "write a program" or "create a website". I have been contemplating about this for FAR too long, and I still have absolutely NO idea what program or website I should create. And when I say "no idea" i mean it literally. The moment I start thinking about it, it feels like my brain activity drops to that of a hamster 🐹. It honestly pisses me off. I KNOW thats what I'm supposed to do... but my brain. It just won't. Edit: The stupidest thing is, I actually did create a website when I was like 14. (So 12 years ago). I created a wiki (from scratch) for the Bleach manga 😂. I dont know anything about what I did anymore though. I became an electrician later on. If anyone has any advice on how I can finally find something to code, not matter how small, PLEASE tell me. The only thing I've had an idea about (and I have already done it.) was a short script to... "permanently borrow" a book on data structures and algorithms from an online library. 😂
I think the first thing one should do is figure out what type of software they want to create or what they're drawn to as that will dictate what path they take on their journey. If you're looking to make 2D/3D games or game engines, you're going to take a different path than someone who has an interest in making web applications. Both of those paths will be different still than someone who say, wants to pursue creating AI/ML applications. The second thing I think people should do is understand how CPU's work in general, the idea of registers, stack pointers, instruction pointer, busses, ALU, opcodes, basic instructions/opcodes such as MOV, ADD, SUB, MUL, JMP, conditional JMP's, etc.. what they do and how that works under the hood. For anyone interested in that, there's a great series on YT by Ben Eater that goes over building your own very very simple CPU from scratch. Not saying you have to build the thing, but I highly recommend diving into the content if you want to understand how CPU's work from the transistor level on up. I think it's a good litmus test for someone interested in getting into development. Maybe less so for the webby type stuff.
My advice for functional languages Don't learn Haskell if you value error messages. Rust compiler gives great errors in Haskell all you know is you have an error.
I'm probably gonna come in with a blazing hot take, but arch isn't that hard, and it's only good because of the AUR. Literally every other distro sees more corporate use, and if you want the "arch style" install process, then get the "basic" or "server" version of your favorite distro.
Just wanted to say RUclips notifications shame on you. RUclips recommendations good job I watched the video 20 mins after it got released. While RUclips notifications came 2 hours late.
Re: You wanting to learn functional programming, Based on what I've seen from you, you'd personally click well with OCaml. But the learning materials, especially for the advanced stuff, are not great. (Maybe F# or ReScript have better tutorials. They are used for problems a bit outside of my current wheelhouse, so I don't know.) But I've had a lot of success teaching functional programming using the book _Haskell Programming from First Principles_. It's a bit out of date in that a few of the examples need updating to run on the latest versions of the language. But I haven't found a better presentation of the thinking process. The difficulty is way overblown, but there are definitely some distracting things about Haskell that make me wish there were better options. If you do find one, I'd be interested to see it. I'd say that the most important ideas are all related to using the type system to guarantee things about your code so that certain bugs become literally impossible. (You can take this to an extreme with a system like Coq or Isabelle and do full on formal verification, but that's usually overkill.) Even though you can't do that in most languages (Rust and C++ being major exceptions), the way you think about it can help write higher assurance code even when you don't have tooling to help. All of that said, Rust does 80% of what a functional language does and it gets better every year. So I'm not sure how much you'd personally get out of doing this. Rust already has Quickcheck. It has type classes. It has parametric polymorphism. It has algebraic data types and pattern matching. Iterators are lazy and work because of the universality of fold. Any good library is going to build the data structures, their invariant, and the core operations around some algebra. Both Option and Result are monads, they just don't call it that. Functional languages go further and have better ergonomics. Many of those features that will probably be in some future version of Rust. So the benefit to learning Haskell or OCaml would have to be either that it lets you code something that'd have too much boiler plate in Rust, that would benefit from faster compilation and turnaround, or that would take advantage of more complex idioms that are available.
Hey prime and the youtube comment section. I found this channel through fireship, and I'm a first year Cs college student in my second semester I'm currently taking a course on algorithms and data structures (using java) and I want to boost myself ahead of everyone else I'm not sure as to what to do during my summer should I look for an internship? Or just try making my own projects or maybe I take a summer semester to graduate earlier or some other option I've not thought about any insight from someone more experienced would be appreciated.
I was feelin the same way ( keep in mind I just started down this swe, cs journey) but from what I’ve read and heard the more experienced devs in this industry think that ai will not be able to work on large code bases or large scale things anytime soon or ever and I also started to get worried but thought people and companies are stubborn so the integration of things like that would take so long to run smooth idk if all companies would see it as advantage until it’s established. I think ai will ultimately become a tool not a replacement. Also if u can program u can build awesome things for yourself which is why I’m doing it . Still gonna do cs or swe with finance.
If GPT can replace programmers, it can replace everyone. You're fine. Programmers don't get paid to write code. The compiler generates better code than I'll ever write. We get paid to translate between humans and computers. It is just a tool to make devs more efficient. You realize simple games lile pong took hundreds of dev hours and now a dev can do it in under an hour.
Unfortunately there's not much we can do about it. Most junior devs will not be needed as AI matures. Senior devs will still be required of course. But juniors are screwed.
Of the ten he listed 3 are necessary the rest are helpful but kind of a waste. What isn’t on the list is data structures and algorithms which is necessary to get hired
Is GO(lang) really something people are asking for? I'm still seeing far more Java positions. I've done HTML, CSS, Javascript but stopped short of React/Next. Hosting my resume/website in AWS thanks to taking the cloud resume challenge and was active on GitHub until late last year Feels like I'm learning things that will end up getting replaced in a couple years.
TFW you decide to install Arch, haven't installed linux since that one slackware build in the 90's, can't figure out how to edit /etc/pacman.d/mirrorlist, and discover it's because you're typing "vi" instead of "vim" 😂
This man is single handedly going to motivate me to continue learning programming.
Just curious, do you say “continue” because a lot of folks say the writing on the wall and programming is going away (it isn’t it’s just going to change dramatically)?
Cause ya, that’s what Prime does to me too - helps me cut out the noise and do it for the love of it!
@@saysthetedd I'm still what i would consider to be at the very start of my journey of becoming a developer but for quite some time now i simply didn't have the drive and motivation to continue learning so I've been stagnant for the past few months but Prime is kinda helping me get somewhat excited about learning again.
Also, i do hope programming isn't going away, that'd put quite a damper on my future career plans! I wonder, do people say such things because of the recent push of AI?
@@jogmanson9510 oh okay. Well, please, keep going.
Ya, lots of the narrative is AI will render certain positions unnecessary. Don’t listen to that - keep watching Prime, feeling excited and working hard. Programming is about more than writing code and the foundation you’re building now will only give you a better understanding of how to adapt as things do inevitably change.
And remember: thou shalt not open vscode
AI will make developers more productive, but will not replace them for a while. A developer needs to read/understand/combine/refactor the generated code
@blork I would add: consistency > motivation. If you consistently work towards your goal of becoming a developer, even when you feel overwhelmed, you will get there faster and have the habits to sustain a healthy career.
Here's my recipe:
1. learn C
2. write segfaulty code
3. feel the pain
4. learn Rust
5. write safe code
6. feel the joy
7. improve your social skills
8. start a cult
9. once you have followers by the thousands you can apply to jobs, you're too influential to be ignored
i am working on 8
@@ThePrimeTimeagen let me know when you need more cult members
@@ThePrimeTimeagen can I join
@@ThePrimeTimeagen me too
@@npmaile hold o-
Thanks for reviewing my post! I'm happy to see all of the positive reactions. I hope to keep writing more stuff!
I went from not knowing HTML to hired as a SWE in around 15 months. I know people who did it faster than me but honestly even if you’re hired after 6 months you won’t know much.
I think even with the poor economy over a year is a realistic expectation if you’re putting in a ton of work everyday.
This is 100% true.
Im self taught, but I got lucky and got my first dev job in 3-4 months from starting to learn. I was hired because it paid realllllllly bad, but it was a job and experience.
I was HORRIBLE my first 1-2 years, I was basically still just learning but luckily had a job and just learned on the job instead of self studying. These expectations of being a decent dev in like 6 months is not real at all.
Ive been a dev for about 5 years now and I am 1000x times better and close to senior level. I've developed passion and keep studying through most my career. Just keep going.
I also make 4x as much as that first dev job, if thats any motivation to others.
You guys are just bad. Don't extrapolate your failure experiences to other people.
A lot of people come into tech because they are predispositioned to it and are generally good at problem solving/engineering. You don't need years to be a good dev. Good devs are made with the right mindset and tools. I found a *high paying* (for a first job at least) swe job in my country(Europe) after 4 months of learning, almost from zero. I went to *middle* level interviews and my actual job title is closer to middle now even as my first job (in my country it says "senior" on paper but it is close to middle internationally). I did study for like 5 hours a day, but still this is a good result, isn't it?
For some people it may be "hard", but if you didn't *force your way* into IT, there is nothing especially hard about software engineering. That, or you had no idea how to learn stuff properly and effectively. Don't assume people are failures, 6 months is a good spot to become a relatively strong junior dev if you really know what you are doing.
@@twothreeoneoneseventwoonefour5 Chill man, You do better than average people.
@@twothreeoneoneseventwoonefour5 Could you give us a break down of your 4 month study curriculum that took you from almost zero to a professional software engineer? e.g week-by-week with what topics you covered each week.
@@ericgithinji5140 First of all I am located in Europe(if that changes anything).
About the curriculum, I didn't have it. I mostly used a couple of udemy courses, youtube tutorials, learned stuff there, then did my own projects. If I had a need to refresh/relearn something, I could google for docs or youtube tutorials (just make sure that they are up to date).
I studied for around 4, maybe 5 hours a day on average. But I watched a lot of youtube aimed at developers in my field(fullstack webdev) as well in my spare time.
I think that the most important point is to stop confining yourself by time at all. You asked for a curriculum, but it is not effective to have it in the first place. If you desire to learn something, learn it all you want when you want. When you feel ready, move on to the next topic. Usually you should move to the next topic when you know around 80% of the information about the topic. This is important, don't try to "master" topics when you are still a beginner. Learn the basics, maybe some advanced stuff, but don't go overboard. 80% is enough to move on. You can come back and "become a master" later when you already have a job, for example. Getting a job of course does not require you to be a master, that's why.
Now about what time it took me to learn the topics, I can give rough estimations. But have in mind that I also had some little experience with python(and programming in general) beforehand(I did like 50 hours total in past). And my chosen field is webdev.
So stage 1:
HTML - a couple of days. You can skip most of the stuff. div span p a, maybe semantic html is all you will ever need.
CSS - a week or two for the basic concepts. Learn about the box model, flexbox. You can skip flex grid for now, but you will probably want to do it later.
JS - a week or two for the basics. If you didn't have experience with programming, probably 2 weeks or slightly more I guess. You can skip OOP for now and learn it when you have the need (it may be a long time until that).
UI Framework (frontend): I would recommend React or Vue. React is more popular. 2-3 weeks. Learn about components, hooks (the basic reactive concepts), project structure and how the rendering works with these frameworks.
Backend(even if you only want to do frontend), usually NodeJS - another week or two. You can and should combine your frontend learning with backend learning to see how they connect, but maybe better to do it at stage 2.
At some point when you feel *somewhat* comfortable with JS, learn Typescript. You don't need to be a master of JS to learn Typescript, not at all. Preferably learn Typescript as soon as you can and use it for all your future projects from that point. Typescript is around a couple of hours of learning to get the basics going. A couple of hours and you will never return to JS.
You can even learn JS, Typescript, Frontend(React?) and Backend(NodeJS) irrespectively of each other if you want. I did it like that. Make your learning fun, if you think you can learn React or Node right now, then do it, you don't necessarily need to "finish" learning JS to learn them. Return when you have the need.
Stage 2:
Learning in stage 1 is mostly done with tutorials and stuff, but you can also experiment yourself *just a little* there, but don't do much. Because after that initial learning block, you should be able to create your own projects freely. In stage 2, create a couple of projects *from zero* , make a portfolio. If you need to relearn/refresh your knowledge, do it. Job applications in some countries also require you to know Data Structures&Algorithms so it may be time to learn them now if you need them. I got a job without them, my job interview happened after I successfully did the take-home task they gave me.
Started learning programming at 15 yo but never left tutorial hell. Got frustrated and stop doing it for enough time that all I know is basic programing logic. Always wanted to become a programmer and prime is motivating me to get back on the tracks.
So in what field did you work for 15 years?
@@dipanjanghosal1662 I'm 18
@@marcosdly oh I misread your comment and thought you started programming 15yrs ago, now I see that you started it when you're 15
@@dipanjanghosal1662 Seeing IT recruiters those days that's experience required lol
I've seen some cool programming RUclipsrs in this budding coding adventure of mine, but no one comes close to motivating me as much as this dude. I'd love to get this guy a beer and just talk about random nonsense because I bet he's amazing company in general
"build something" is always a good advice. it goes along with "write something" and "play something". you just have to start and find passion in it. also, it's how i started back in the days when books and not internet was the way to learn.
Prime's response to advice 9 has similar vibe to "i never was so angry at something i 100% agree with"
yes... its very true
Tell Nate that this isn't a post, that's a BANGER! I've been a dev for a year and I haven't done half of that list, but I'm that guy who goes "ugh where's my passionate fire at"? This is actually good advice to relight my fire, and to avoid succumbing to the mediocricy of my environment 🔥🔥🔥
thanks!❤
Coincidently started learning Go 3 days ago and I really love it so far. I'm already very comfortable with Next JS but I wanted to pick up a dedicated server side language and I'm really happy with my choice.
I've also been using Next.js for a while and thought about learning Go. I just wonder in what ways I can tie the two together?
@@prouzaxios the default for server react requests
There are other ways, google is your friend. Good luck!
I always enjoy these videos. Especially agree with the "STFU and do it part" ( I paraphrase )....it applies to so many things in life. Going to the gym, starting a business, learning to code, reading a book. Just. Shut. Up. And. Do. It.
+1 for trying Arch as your main device (at least for a while). I learned more in 2 weeks flailing around in a fresh arch install than I have in some 6 month periods doing regular SWE.
Also - I had way more fun figuring out things like how to control screen brightness by editing a file (then automating that in my bashrc) than I can explain to a normal human.
I think suggesting to work in a Linux environment is just a waste of time. Just pick the language you want to get a job in then build something it.
You don’t need to edit text file outside you ide
The GitHub advice is good. Use it for your first project.
Lastly. Consider getting a professional service job and work into a Software Engineering job.
what you can do that
@@BusinessWolf1in Linux, everything is a file. There's a file that contains your brightness value somewhere. It's not a real file that exists on your hard drive, but rather the kernel pretending that it's there to every program running on the computer. You write a new value into that file, this sends a command to the kernel that brightness has to change to this new value.
Another benefit to this is you learn how to google solutions to problems real quick
1:07 - Single best decision I've made in my career. I don't use Arch any more (rn I use Kubuntu, because it's easier to maintain and I don't really want to debug my OS from time to time, when some update makes a breaking change in my workflow), but it basically kickstarted my understanding of computers.
I've dropped out of university after 2 years (CS), because I barely knew what was actually happening when I was writing code. Then I started again, this time Linux from the very beginning. It finally started to make sense when I was writing basic C programs, and I knew what actually compiler was and what it was doing, what exactly is happening to make that compile, whole linking process etc.
Basically it taught me to think and try to understand, instead of just finishing assignments in as little effort as possible. The beginning was the worst, but then at the end of third year me and other people using Linux exclusively for their programming were the only people who knew what they were doing, and not just putting their code in some black boxes.
For a whole 2 years of me using arch, I have never had any problems with it that I didn't cause myself. It was probably a "you" issue.
Also I don't understand the "maintaining" part. Are we really using the same linux? If anything Kubuntu (and the whole kde environment) was more buggy when I tried it than Arch with wm for example. I use arch with awesomewm and ALL the maintaining I ever do is: "write 'paru' in terminal (which automatically updates the system), all done". What maintaining is there to do again?.. Right, there is nothing.
You don't sound like you had actually used Arch for more than a week or a month at best.
@@twothreeoneoneseventwoonefour5 Dude, I've used it over 2.5 years. The maintaining part is don't wanting to download 2GiB dependencies every weekend. There was also a time at my job I couldn't open MySql workbench, because some library that it depended on was updated and it refused to launch.
If you're using only OSS? Sure, it probably never breaks. But if you're using some proprietary software that depends on certain version of the library, and that library gets breaking update, prepare to waste some time downgrading to certain version of the library, and pray that your DE or something else you really need is not dependent on that library.
It's great it's been working for you whole the time. But once you waste some time when it does, you will see my point.
@@twothreeoneoneseventwoonefour5 Many people don't actually "use" it, they tweak stuff just enough for their need and afraid thing broke so they don't explore as much as before. I get it, reinstall stuff and read a full page of document is pain in the ass.
That is how you have dude use vim for 20 years but didn't know much as some guy pick it up for a few week.
@@twothreeoneoneseventwoonefour5 word
Great article and great reaction! The part about Arch is exactly how I transitioned from advertising to IT a few years ago :)
I have learned so much more simply by using various linux distros than any class or course has ever taught me. Everything sucks and is difficult at first but then it all starts to come together and I can never enjoy the beautiful animations of mac again.
Binging all your videos. Thanks for the content.
:)
Man thanks for this article, I've been having some anxiety when I go into a rabbit hole, thinking it would be just a waste of time.
I'm glad you like it!
This is almost exactly what I did. When I got to the learn a functional language I choose Elixir, and that's where I got my job.
Great video! I should start building more random projects, I think its a great way to learn a little bit about different topics.
BTW at 12:00, your cursor seems to move back by 1 character each time you reopen Vim :p
There was this art study done on some group of 30, they asked 15 people to paint a masterpiece and the other 15 to paint as many works of art as possible.
The people who smashed it out got much better at art, the people who were tasked with making a masterpiece did not do nearly as well.
I like the point on just making any code, doing something and working on small personal tasks gets the wheels moving.
the most general approach humanly possible
thank u for keeping the engineer in me alive after an exhaustive day at work. 💙
The niche you get into may be particular types of software. I've been doing real-estate related software for years now and currently am working with lending companies doing reporting and calculations and whatnot. You may end up in games and maybe a particular style of game.
You also don't have to be in the Linux world. I deploy to Linux for some companies, but always develop on Windows. It depends on what you're building. If you want to learn how to set up a server, buy an off the shelf computer or build one and set it up. Learn how to install and configure Apache on Linux or Windows or learn how to set up IIS on Windows. I use IIS these days because it's not the dumpster fire it used to be and it's super simple to get going.
Unfortunately in today's world if you don't have projects that go above and beyond, and only write code to do simple tasks, you'll never get past the application phase. Especially entry level jobs with 500 other people.
I'm in my 2nd year of CS. Never had any experience prior to uni, so last 2 years were really tough for me. What's worse, I couldn't really spend desirable amount of time on learning and coding what I want. Instead, I was sucked in by some humanitarian useless subjects that took unreasonably huge amount of time. And you know what? After these 2 years I still feel like I know nothing. Like, I can make some cool small Python scripts or some apps in java or a bit of embedded C, but that's it. If I go to an interview and I am asked what algorithm I would use to solve a certain problem, I will answer, but if am asked how to implement, i will stall. I'm not trying to justify myself, but instead of memorising how to do, I know what to look for. Unfortunately, I won't be hired for that. I don't how people become SWE in a 1-year period and sometimes I truly think that something is wrong with me. I hope at some point Prime will cover how people learn programming so efficiently and what kind of steps should be taken, because I feel like after 2 more years I will still be too bad to be hired.
Well I am planning to do a year master conversion and I think there were will be less on theory but more on software and practical work, however from people that done it they say that it's twice the amount of work than in undergrad. Therefore it's harder but still doable.
I'll tell you how because technically speaking I did, focus on only 1 field and kill curiosity outside it, make 2 step by step plans, one detailed and one super simple, then execute it and try to fail fast and a LOT
Well, its because it is a university. I am basically in the same shoes as you, in the end of my 2nd year of SWE at uni not knowing much about stuff (but i will say that there were useful classes as OOP, relational databases, c++ 101, java and application architecture 101). And i do have the same problems -- the philosophy, psychology and language classes were not my cup of tea, but they are the reason why university starts with UNIVERS - it is meant to give students universal knowledge about stuff with some leaning towards a major.
Be strong king, you'll eventually be the engineer you aspire to be.
First two year of CS education is like 70% math 30% CS (also heavy stuff like Computer Architecture and Distributed Systems)
They are not mean for job yet, usually CS grad starting to employable after 3rd year, you learn many stuff that use in the industry.
Are bootcamp grad learn in 12 month can do the job ? Absolutely, but in the long run they have to learn all the stuff that CS grad learn in college to advance at job.
If you are CS student, keep studying don't let FOMO control you.
- Me, a self taught dev.
I have to learn applied math and all CS stuff if I want to keep my job too.
The quality of these videos are amazing. Thanks for uploading this to YT
Really good article! I'm going to read those books!
it started off with me thinking... no way, but man did it end well!!
I read the Go book about 3 times and man, it's true good. It exposes you to various pragmatic concepts used in low-level languages and but not found in most high level languages.
Ex. Pointers, interfaces, etc..
Go is truly a gem but pretty boring language. Soo simple.
Go looks like C with JS privileges and Pythonic clarity.
Won't lie, this advice is good.
Go is interesting
the thing that gets me is it's been 1.5 years and i am yet to make something remotely useful. yeah i have done a bit of leetcode, tree algorithms etc. i have implemented min heap maybe that's a bit useful. but like, there's nothing that i personally use often. i used my a few lines of python script for downloading RUclips videos the most. it feels pathetic.
i tried to build a todo app because Microsoft Todo sucked so bad but then i found a better productivity setup and i had to abandon it.
i learned a lot of things but there's nothing useful coming out of it. i got interested in AI and started learning but it's just theory after theory. wherever i go there is theory. i get it it's good foundation and makes it easier to understand it but it doesn't seem to end. i just want to make something i am somewhat proud of.
youtube started showing your videos in my home this past days, amazing content!
Prime says HARPON like its PARKOUR , lol
I'm still in uni but it makes me happy that I've already done so many things on this list at least partially.
And I plan on finally building something concrete in my next holiday.
You hit the mark when you stated experience. So true.
Everybody likes Nate, mostly because the Stache, but also he is good with computers 🤣🤣
Nate is the best
thanks!
After number 1 i was already on board. True gigachad.
Oh? And where might we find Primeagen's free DSA course, oh whimsical moustached Netflix engineer?
I am just peaking through your Primeagen's Data Structure and Algorithms course, hopefully, this will not put me to sleep :D
Excellent advice. No punches pulled
I spent about a year stressing myself out about how to code before actually building something lol I wish I would've taken this approach from day 1 to just get my hands dirty, build stuff, and take each day as a new opportunity to learn something.
Love it, great motivation! I've been looking at that automate the boring stuff but i don't want to deviate from learning JavaScript until i have a better understanding. Maybe next year
hows it going?
Don't you think there is something off in suggesting to learn version control before learning the basic principles of programming ? Maybe I missed something.
Can we call prime a god at this point?
This man is forming the way I think, way to handle ADHD, decision making, and billions of other things that can make one take full control of his life and achieve any wild idea he/she has (amazing swe hints aside )
I wish there a github repo for front end developers like this one!
thanks for the Harpoon tip!
i am an attorney, i use arch btw. not into development but computing is fun.
I just wanted to say thanks for making your course free I will definitly check it out
Arch Linux and Neovim are the best things that happened in my life
HE FORGOT HIS OUTRO.... name is ... the primagen. hahaha love your vids keep up the great content.
I went through a bootcamp and was lucky enough to find a job (three months post graduation, I think my personal class ahs about a 50% placement rate). Anyways, I sort of crashed after thinking or programmign basically at all waking moments. But after the crash, I felt sort of lost as to how to go about deepening my knowledge since my work is pretty limited to front-end only. I have already taken some of these tips over the last week, and I'm pretty excited to continue learning, get my hands dirty with python and the like.
My biggest problem is always the "write a program" or "create a website". I have been contemplating about this for FAR too long, and I still have absolutely NO idea what program or website I should create. And when I say "no idea" i mean it literally. The moment I start thinking about it, it feels like my brain activity drops to that of a hamster 🐹. It honestly pisses me off. I KNOW thats what I'm supposed to do... but my brain. It just won't.
Edit: The stupidest thing is, I actually did create a website when I was like 14. (So 12 years ago). I created a wiki (from scratch) for the Bleach manga 😂. I dont know anything about what I did anymore though. I became an electrician later on.
If anyone has any advice on how I can finally find something to code, not matter how small, PLEASE tell me. The only thing I've had an idea about (and I have already done it.) was a short script to... "permanently borrow" a book on data structures and algorithms from an online library. 😂
make a bleach powerscaling app (I'm insane)
I think the first thing one should do is figure out what type of software they want to create or what they're drawn to as that will dictate what path they take on their journey.
If you're looking to make 2D/3D games or game engines, you're going to take a different path than someone who has an interest in making web applications.
Both of those paths will be different still than someone who say, wants to pursue creating AI/ML applications.
The second thing I think people should do is understand how CPU's work in general, the idea of registers, stack pointers, instruction pointer, busses, ALU, opcodes, basic instructions/opcodes such as MOV, ADD, SUB, MUL, JMP, conditional JMP's, etc.. what they do and how that works under the hood.
For anyone interested in that, there's a great series on YT by Ben Eater that goes over building your own very very simple CPU from scratch. Not saying you have to build the thing, but I highly recommend diving into the content if you want to understand how CPU's work from the transistor level on up.
I think it's a good litmus test for someone interested in getting into development. Maybe less so for the webby type stuff.
Prime, do a video learning clojure and transducers
Hi, I like your channel. Are you by chance also Dr Disrespect by night?
good post, I agree the point he is trying to convey :)
Go? If you want to get a job as fast as possible you need one of these: Java, C#, JavaScript, PHP. Nothing else comes close.
oh shit thanks for this mate, finally i found a video telling me how i can become a swedish citizen
Instructions unclear: Swedish citizenship obtained
lets go
This is like reading my own biography, this is exactly what I did, but no one told me to
Plenty of my coworkers could use a few of these tips. Especially the markdown one.
I'm surprised you don't have a link to your free course in the description of your videos
Note to self if I rewatch video. "Go and JS are your fastest track from 0 to hired"
I don't think I check all the boxes, and I am employed already. You guys can do it!
damn this article is spitting facts about meta to be pioneer engineer
My advice for functional languages
Don't learn Haskell if you value error messages. Rust compiler gives great errors in Haskell all you know is you have an error.
I'm probably gonna come in with a blazing hot take, but arch isn't that hard, and it's only good because of the AUR. Literally every other distro sees more corporate use, and if you want the "arch style" install process, then get the "basic" or "server" version of your favorite distro.
it's literally 6-12 month of full time commitment...
i agree with most of the stuff, but even as a arch user and lover i wouldn't recommend it for anyone as an intro to linux
12:11 Is he quoting Linus here? lol
I can't believe I accidentally nuked my windows 10 system just because of this video.
As a Swede I think the picture title is misleading.
Nooooooooo, Arch. Well, down the hole we go Alice.
You and me both!
Just wanted to say RUclips notifications shame on you.
RUclips recommendations good job
I watched the video 20 mins after it got released. While RUclips notifications came 2 hours late.
Thank you for this video
Re: You wanting to learn functional programming,
Based on what I've seen from you, you'd personally click well with OCaml. But the learning materials, especially for the advanced stuff, are not great. (Maybe F# or ReScript have better tutorials. They are used for problems a bit outside of my current wheelhouse, so I don't know.)
But I've had a lot of success teaching functional programming using the book _Haskell Programming from First Principles_. It's a bit out of date in that a few of the examples need updating to run on the latest versions of the language. But I haven't found a better presentation of the thinking process. The difficulty is way overblown, but there are definitely some distracting things about Haskell that make me wish there were better options. If you do find one, I'd be interested to see it.
I'd say that the most important ideas are all related to using the type system to guarantee things about your code so that certain bugs become literally impossible. (You can take this to an extreme with a system like Coq or Isabelle and do full on formal verification, but that's usually overkill.) Even though you can't do that in most languages (Rust and C++ being major exceptions), the way you think about it can help write higher assurance code even when you don't have tooling to help.
All of that said, Rust does 80% of what a functional language does and it gets better every year. So I'm not sure how much you'd personally get out of doing this. Rust already has Quickcheck. It has type classes. It has parametric polymorphism. It has algebraic data types and pattern matching. Iterators are lazy and work because of the universality of fold. Any good library is going to build the data structures, their invariant, and the core operations around some algebra. Both Option and Result are monads, they just don't call it that.
Functional languages go further and have better ergonomics. Many of those features that will probably be in some future version of Rust. So the benefit to learning Haskell or OCaml would have to be either that it lets you code something that'd have too much boiler plate in Rust, that would benefit from faster compilation and turnaround, or that would take advantage of more complex idioms that are available.
Hey prime and the youtube comment section.
I found this channel through fireship, and I'm a first year Cs college student in my second semester I'm currently taking a course on algorithms and data structures (using java) and I want to boost myself ahead of everyone else I'm not sure as to what to do during my summer should I look for an internship? Or just try making my own projects or maybe I take a summer semester to graduate earlier or some other option I've not thought about any insight from someone more experienced would be appreciated.
This is not what I would think to tell someone, but looking back, this is very close to what I did.🤔
Do you have any take on GPT-4 and the despair that CS students seem to be feeling about entry level jobs being automated (potentially more)?
I was feelin the same way ( keep in mind I just started down this swe, cs journey) but from what I’ve read and heard the more experienced devs in this industry think that ai will not be able to work on large code bases or large scale things anytime soon or ever and I also started to get worried but thought people and companies are stubborn so the integration of things like that would take so long to run smooth idk if all companies would see it as advantage until it’s established. I think ai will ultimately become a tool not a replacement. Also if u can program u can build awesome things for yourself which is why I’m doing it . Still gonna do cs or swe with finance.
LMAO which entry cs student despises gpt?
If GPT can replace programmers, it can replace everyone. You're fine.
Programmers don't get paid to write code. The compiler generates better code than I'll ever write. We get paid to translate between humans and computers.
It is just a tool to make devs more efficient. You realize simple games lile pong took hundreds of dev hours and now a dev can do it in under an hour.
I lost all motivation to learn honestly. AI killing fun creative jobs is so bad for my psyche :c.
Unfortunately there's not much we can do about it. Most junior devs will not be needed as AI matures. Senior devs will still be required of course. But juniors are screwed.
This video will change my future 🤭
where can I find your bootcamps/courses?
"I AM ATOMIC"
W article
Of the ten he listed 3 are necessary the rest are helpful but kind of a waste.
What isn’t on the list is data structures and algorithms which is necessary to get hired
Is GO(lang) really something people are asking for? I'm still seeing far more Java positions.
I've done HTML, CSS, Javascript but stopped short of React/Next. Hosting my resume/website in AWS thanks to taking the cloud resume challenge and was active on GitHub until late last year
Feels like I'm learning things that will end up getting replaced in a couple years.
Thanks to Nate's advice I switched to Arch. Now even my waifu left me.
TFW you decide to install Arch, haven't installed linux since that one slackware build in the 90's, can't figure out how to edit /etc/pacman.d/mirrorlist, and discover it's because you're typing "vi" instead of "vim" 😂
Pretty though program to follow on your own.
Great stuff.
thank thank thank you
You know you should learn before markdown? HTML or something you can get hired for
As someone from Sweden I totally misunderstood the thumbnail 😄
If you are using emacs, Id say using org mode is just as good as learning markdown
Org mode is so much more than puny markdown. There's even a spreadsheet embedded.
i love u mr. primeagen
Nice advice to beginners!!
Thanks!
great stuff
Thanks for uploading this video!
Link to Primagen's free course on Algorithms and Data Structures
Write a *CLI program* and *WEB SERVERS*
Drop a link to your free Algorithms class in your description!
At this point I'm more interested in how to get out tbh
I've been using Arch and nothing else for about 13 years and I literally can't use anything else. I lost the ability to use windows at all.
Who needs windows? The basement is comfy enough without them and you don't wanna burn your retinas by accidentally looking through them.