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've seen some cool programming TH-camrs 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
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.
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.
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 🔥🔥🔥
"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.
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: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.
"learn the in-group terminology and concepts" - that's why I'm watching you (aside from being immensely entertaining even when I don't have the technical knowledge to get the joke)
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
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.
+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.
You can also write a bash script and put it inside /usr/bin. It will turn into an executable command in your system. I created a script named gaychecker. It will randomly tell me if I'm gay or not. If it senses my gayness, it prints "You are gay." then plays that famous meme of the african dude saying "You are gae". Everytime I enter gaychecker in the command line this happens.
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.
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.
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.
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'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.
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 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.
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 TH-cam 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 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.
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.
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 allow changes to harpoon other than bug fixes. You might want to consider forking harpoon yourself to 'lyroon' - replacing 'harp' with 'lyre', as more of a vulgar (in the classical sense) style of harp. the exact sort of 'not as clever as it thinks it is' name that's endemic to open source. Then select a few trusted community members to be maintainers of the project, to screen PRs and whatnot. That can be a more 'kitchen sink' plugin. You'd still have some control / influence over it to prevent it from straying too far, but the idea would be to allow it to be less pure than harpoon and to leave it to the community to maintain and decide the direction of.
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.
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.
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. 😂
Overall, the video and advice from the article is solid! Does anyone know which course about data structures and algorithms he is referring to when going over the Leetcode section? I started Princeton's advanced data structures and algorithms, but it's getting a bit too mathy for me. :D
Well, you have tons of tools which are the Linux essential command line programs. Just gotta know the commands. Then, you can learn Bash to automate the boring stuff. Seems kind of redundant to learn Python to automate the boring stuff when you have those tools in Linux. Unless you want to learn how to code in Python. And also there's C which gives you a good sense of how computers, operating system and your own system works as well. Sure, I guess Python is a good skillset to have and getting a book like this gives you a general proficiency in Python that can be extended and/or specialized.
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.
Just wanted to say TH-cam notifications shame on you. TH-cam recommendations good job I watched the video 20 mins after it got released. While TH-cam notifications came 2 hours late.
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.
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 comes up when you search just his name + algorithms. You have to sign up to a site called FrontEndMasters but it does seem to be actually free. I didn't know it existed until this video lol
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.
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.
Thanks for reviewing my post! I'm happy to see all of the positive reactions. I hope to keep writing more stuff!
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-
I've seen some cool programming TH-camrs 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
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.
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
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!❤
"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.
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.
Great article and great reaction! The part about Arch is exactly how I transitioned from advertising to IT a few years ago :)
Great stuff.
thank thank thank you
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.
"learn the in-group terminology and concepts" - that's why I'm watching you (aside from being immensely entertaining even when I don't have the technical knowledge to get the joke)
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
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
The quality of these videos are amazing. Thanks for uploading this to YT
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!
Binging all your videos. Thanks for the content.
:)
thank u for keeping the engineer in me alive after an exhaustive day at work. 💙
+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
You can also write a bash script and put it inside /usr/bin. It will turn into an executable command in your system.
I created a script named gaychecker. It will randomly tell me if I'm gay or not.
If it senses my gayness, it prints "You are gay." then plays that famous meme of the african dude saying "You are gae".
Everytime I enter gaychecker in the command line this happens.
youtube started showing your videos in my home this past days, amazing 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.
the most general approach humanly possible
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.
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.
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.
Excellent advice. No punches pulled
You hit the mark when you stated experience. So true.
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 am just peaking through your Primeagen's Data Structure and Algorithms course, hopefully, this will not put me to sleep :D
good post, I agree the point he is trying to convey :)
Go looks like C with JS privileges and Pythonic clarity.
Won't lie, this advice is good.
Go is interesting
8:43 what there's a primeagen free course on data structures and algorithms? That's awesome
I just wanted to say thanks for making your course free I will definitly check it out
After number 1 i was already on board. True gigachad.
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.
Oh? And where might we find Primeagen's free DSA course, oh whimsical moustached Netflix engineer?
thanks for the Harpoon tip!
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 )
Prime says HARPON like its PARKOUR , lol
HE FORGOT HIS OUTRO.... name is ... the primagen. hahaha love your vids keep up the great content.
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.
oh shit thanks for this mate, finally i found a video telling me how i can become a swedish citizen
Arch Linux and Neovim are the best things that happened in my life
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 TH-cam 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.
Hi, I like your channel. Are you by chance also Dr Disrespect by night?
damn this article is spitting facts about meta to be pioneer engineer
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.
this is exactly how I learned to code
I'm surprised you don't have a link to your free course in the description of your videos
Everybody likes Nate, mostly because the Stache, but also he is good with computers 🤣🤣
Nate is the best
thanks!
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.
Note to self if I rewatch video. "Go and JS are your fastest track from 0 to hired"
This is like reading my own biography, this is exactly what I did, but no one told me to
Thank you for this video
i am an attorney, i use arch btw. not into development but computing is fun.
Prime, do a video learning clojure and transducers
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 allow changes to harpoon other than bug fixes. You might want to consider forking harpoon yourself to 'lyroon' - replacing 'harp' with 'lyre', as more of a vulgar (in the classical sense) style of harp. the exact sort of 'not as clever as it thinks it is' name that's endemic to open source. Then select a few trusted community members to be maintainers of the project, to screen PRs and whatnot. That can be a more 'kitchen sink' plugin. You'd still have some control / influence over it to prevent it from straying too far, but the idea would be to allow it to be less pure than harpoon and to leave it to the community to maintain and decide the direction of.
This video will change my future 🤭
Instructions unclear: Swedish citizenship obtained
lets go
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.
"I AM ATOMIC"
I don't think I check all the boxes, and I am employed already. You guys can do it!
Plenty of my coworkers could use a few of these tips. Especially the markdown one.
Nooooooooo, Arch. Well, down the hole we go Alice.
You and me both!
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.
I wish there a github repo for front end developers like this one!
it's literally 6-12 month of full time commitment...
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.
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. 😂
where's the free course of DSA you mentioned 8:42
Frontend Masters (just need account (email only))
Nice advice to beginners!!
Overall, the video and advice from the article is solid! Does anyone know which course about data structures and algorithms he is referring to when going over the Leetcode section? I started Princeton's advanced data structures and algorithms, but it's getting a bit too mathy for me. :D
where can I find your bootcamps/courses?
Well, you have tons of tools which are the Linux essential command line programs. Just gotta know the commands. Then, you can learn Bash to automate the boring stuff.
Seems kind of redundant to learn Python to automate the boring stuff when you have those tools in Linux. Unless you want to learn how to code in Python.
And also there's C which gives you a good sense of how computers, operating system and your own system works as well.
Sure, I guess Python is a good skillset to have and getting a book like this gives you a general proficiency in Python that can be extended and/or specialized.
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.
Thanks to Nate's advice I switched to Arch. Now even my waifu left me.
Link to Primagen's free course on Algorithms and Data Structures
Just wanted to say TH-cam notifications shame on you.
TH-cam recommendations good job
I watched the video 20 mins after it got released. While TH-cam notifications came 2 hours late.
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!
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.
how do you get a discord invite to your channel?
Pretty though program to follow on your own.
i love u mr. primeagen
As someone from Sweden I totally misunderstood the thumbnail 😄
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
As a Swede I think the picture title is misleading.
Where can I find your data structures and algorithms course?
It comes up when you search just his name + algorithms. You have to sign up to a site called FrontEndMasters but it does seem to be actually free. I didn't know it existed until this video lol
Drop a link to your free Algorithms class in your description!
You know you should learn before markdown? HTML or something you can get hired for
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.
W article
great stuff
Thanks for uploading this video!
If regex is my jam, what would be my job?