Ha, what an original joke. It's not like I've ever seen this joke on every single programming video ever. Well done, you should be proud of your originality.
Mastery is by no means overrated, but in the context of programming languages, the web and everything that goes with it, you won't obtain true mastery without considerable time investment (8-10 years probably). However, I like the concept of just knowing that something is available to you and if you know how to quickly find it, you will most likely remember how it works and how to implement it without too much hassle.
It’s like Mechatronics you don’t really master any of the integrated subjects (Electronics, Mechanics, Automation, Programming etc.) you study however the knowledge you acquire gives you leverage to do really cool stuff...
I cannot recommend networking fundamentals enough - You don't need to be an expert, but understanding the OSI layer / TCP/IP stack is so important and will alleviate a lot of headaches.
Where a programmer has a basic grasp on the networking topology/techniques generally used, it can help talking with Infrastructure as much as debugging a solution. For instance maybe there is a network issue that stops the path between 2 subnets. Maybe some ports on the firewall you rely on being open no longer are, or you have a new product that requires specific ports opening in order to work. Classic example, your app with db connectivity works on your development machine but db calls timeout in DMZ... Usually points to firewall/network manager product issue. Its the little things sometimes.
Being a programmer for over 20 years. Networking okay but the rest can change in a blink of an eye. My 3 skills: Know how to help yourself, debugging, staying calm when s* hits the fan.
Knowing how to google stuff helped me a lot to do a lot of the tgings that I didn't have the knowledge to do as an IT student, some people might say that anyone can google anything which is right but not everyone can type the best search answer and know which site to use
You're not qualified to say that. You've been a Programmer for 20+ years, and did you achieve anything great? Like creating a company that affects millions or possibly billions. People like you think that doing something for decades makes you somewhat superior to those who'd spent just a few years doing it. Most of you just do the same thing over and over, every year, maybe making a few changes/improvements along the way which are of too little importance in the long-term.
To get to that level ... You need to go through toughest frustrating nights .. where you feel to give up after the program doesn't work for hours as u want .. So it's not easy .. persistence ,patience and practice ... Is only key.
You are focussing on full stack development from a very high level point of view. More important than being able to script a complete application is for being able to use tools like Git, CI/CD Pipelines, know something about Unit Testing and automated testing in general. Even AWS, MS Azure and Google Cloud are as important as being able to program JS, Python and friends. Understanding differences between horizontal and vertical scaling and being able to build platforms which are able to scale. You won't be able to handle millions of request per hour in a monolithic structure. For a long time I was focussing on fullstack development like you@ve mentioned. But for the real fancy well paid jobs for big enterprise companies I needed to focus more on stuff like RabbitMQ, Apache Kafka, Jenkins, Docker, Kubernetes. That kind of toolset became more important than my Python, Java or any else programming language skills. If big companies hire Python developers, they are never looking only for the Python skills.
Again like a few people, you missed the crucial point of the video. These are skills to be able to build your own company and work for yourself. Not to get a job. If you want to work for someone else then you are 100% correct (I think) 😄
@@Hallden_ it felt like you were contradicting yourself a bit in the beginning which might have lead to that confusion. The very first thing you say after listing the three skills is that you can get a higher than avarage paying job just by learning one, then a few sentences later you say that these skills are not for getting a job (which I think is a bit weird to say as fullstack developers are highly sought after in most companies). But nice video anyway!
@@neylion6348 yeah, no not really though :) I was showcasing that just having one of these skills is valuable even if you don’t build your own company. Since with just one of them you can get an above average paying job. If you just put a bit more effort into that one skill. However, learning the basics of all three of these (enough to be able to build your own company) is not enough to get a well paying job as a full stack dev. Meaning; you can learn super basic things about full stack and still be able to build something like Instagram and that won’t take too long to do. But you won’t be a full stack dev since you don’t know all the things enough. At least not enough for a high paying job. If you learn the basics of these three then you can fairly quickly dive deep enough into just one of the skills to get a fairly high paying job for that specific skill. But for full stack you would need to do that but multiplied by three. Since you need to be closer to mastery of all three. I hope that is clear (enough) if you watch the video again :) Also I appreciate your comment, so this is not meant to sound rude in any way! Just thiught it was worth clearing this up so that other people who see this understand exactly what I meant. Since it seems like a few people got confused :)
@@Hallden_ yeah, I know what you mean now that you have explained it and I have that knowledge going into the video. It probably wasn’t ”clear enough” in the video itself if many people got it wrong, but it’s great that you are engaging with your community in the comments to clarify. ”Not only could it provide you with an above average income, it could also equip you with the toolset required to be the next Bill Gates...” is the main confusing sentence I suppose. If you would have said something along the lines of ”You could focus on just one of these and you would probably have better chances at getting a highly paid job than if you focus on all three, but getting an understanding of all three will equip you with the toolset required to...” it would probably have made your message clearer. I do however think that companies are starting to look more and more for people that do understand the full stack rather than who are super specialists in one part of it (while still ofc needing specialists here and there), so I don’t think you hurt your chances of landing a high paying job if you decide to go the fullstack route (as long as you don’t get overwhelmed and stop that is haha).
@@Hallden_ it depends on your app. I might missed an other significant point: you want to motivate people and not to admonish them. And that is absolutely great. But working for someone else does not exclude to work for yourself. And I was not writing about working for someone else but also working with someone else and learning from each other. Working in a team and learning from each other is the most important habit for programmers. And putting some attention not only on major programming languages and framework but also on a good tooling is also important for beginners :-) There is much more out there than js, Ajax and SQL. And specially if you want to combine different usecases that tooling become very important (such as building a shop including chatbot and user specific recommendation system won't fit very well on your appointed skill set)
Thanks for this man. JS-Html-Css and React with Node with Mongo was the stack I chose last year, and your advice has validated a lot of my choices. Truly appreciate your effort and opinion.
I only lack React at the moment, spent most of the past year practicing building web applications with Flask/PostgreSQL. I know HTML/CSS quite well, I know some JS too. As soon as I find enough of spare time I will start learning react to finish my project
@@aarnavtrivedi438 Yeah that's what I meant, I don't use anything too complicated for web interface. I only use JS for asynchronous stuff like infinite loading and such at the moment React Native is what I am being recommended usually when I ask about a cross platform solution for mobile
@@godwinyo5206 I had some general previous knowledge as I am an engineer myself and not that far from the subject, but basically 90% was learned in the past two years. I would say a focused person with enough free time can do the same in 4-6 months, depending on background
3:40 - Thank you so much for this specification, I was kind of sad when I started to write code I’ve learned and realized, I still don’t exactly know every single part of how I am going to make this work. You just calmed me down :)
In india, it's mostly just competitive programming to grab the highest package. For things like app / web dev or databases etc., u'll need work ex more than your age to get a decent job
As an avid watcher of this channel and other tech-tubers whilst on the hunt for my first Software Engineering job I have been scavenging the internet for over a year now for someone to cut the BS and tell me WHAT EXACTLY encompasses everything you potentially need to know. Its very hard to get a ballpark idea in your head of what you need to learn especially as a beginner! So.......THANK YOU for being the one who finally sums it up without pretentious fluff! Please keep up the great content!
as I coded an app for the final project in university I enjoyed the process more than I thought.it made me want to improve as a programmer and this video was very helpful. you've earned a sub :D
Call it a lack of creativity, lack of exploration, or life interference, but coming up with a project that utilizes an "essential"/common technology or programming technique, that hasn't already been made, has been my biggest hurdle in trying to become a developer.
Great video man! I see many in the comments miss the point that this is for starting a business not getting a job. I would add that "finding an idea" is really business knowledge in product development.
So essentially full stack development, which I agree with. I also things like git, CLI, asynchronous programming and other basics are important to master
Such an awesome and useful video. Thank you Kalle! I like how you used the examples to relate the different concepts like how databases, frontend and API link together. Very cool
Best explaination..... best advice for who really dont want to do job..... a serious note well sufficient and powerful to suggest one. Thanks buddy..... worth sharing with beginners....
Network basics and database knowledge are pretty straightforward, but i don't really see how app development is coming into the picture. It's like saying that you need to know a particular programming language/framework (that is what app development is) in order to be a good programmer.
It might be worth noting that this is only one "genre" of software development. Not all software has a UI. I'm an embedded software engineer and have no need to build an API or a UI. Although everyone recognizes products from Apple, Microsoft, Amazon, Google, and Facebook, that doesn't mean they're the only tech giants. Cars sometimes have 100 embedded systems. I've found that mastering C makes all of these other skills incredibly easy to pick up. I learned Swift in a weekend just by reading the Documentation on it because I understand how and why they've made the design choices. Most of Swift is just written in C++ anyway.
Instead of googling the same thing each time you are on a new project you can take notes of atleast a few basic thing's (like command for creating a database) so that you can quickly look into your notes when you need them instead of opening your browser, typing in the search bar and then again searching for the right command in the huge pile of results you get from google. Nice video by the way🙃
Can you make a video where you explain what is API in detail and why to use it and also an example of uses . And Thank you for those videos that you've made
I'd say it all comes up in tutorials if they're any good : Learning a language : - learn the syntax and logic - learn how to deal with input and output ( GUI, files, DB, network) - ... - profit !
@@urjitchakraborty5813 dude I asked for desktop wth? React Native is for mobiles, React is for web, there is no such thing as React for desktop hence, Electron plays the role of HTML, CSS, and Javascript for native development.
Kalle, you have been a huge inspiration and I have been following you for such a long time on my main channel. I wanted to support you here also. Love your content and your video editing skills are on 🔥️. Thanks so much and always looking forward to your next video!
Hay kalle ! i like your all video's , your video is so informative and you doing great keep it up and inspire everyone who want to became programmer 😊🤘
You should set up serious of videos on how to build a basic app using the skills outlined? Would be willing to pay of course, as I really enjoy your style of breaking down complex topics. Something to consider I guess 😊
“programming is not about knowing exactly what to type to get the code to run. its about understanding how what you want to do, CAN be done. you only need to understand how these skills general work and when and where to use them. if you know that, then you can just google the specifics.”
Networking is a big word, it has different meanings. Here, you are actually talking about API or Web Service, which are SOA, REST, JSON, SOAP, and knowledge of http requests(POST, GET, PATCH, DELETE), etc.
HTTP and SOAP are the only networking protocols mentioned here. SOA is a design principle, not relevant to the networking protocols. JSON is a standard for serialized data, not a topic in networking. How about the big boys of TCP, IP, ICMP, ARP, BGP, OSPF, RIP, ...
İ would recommend you start with a bootcamp on web dev, a good example would be Andrei Neagoi's web dev bootcamp on udemy where he also has a React section. By starting with web dev bootcamp you'll get the front end basics (the website shell if i might say) then you'll get to also work on the backend and databaes. Once you're done you can transition into Mobile Dev, for an example if you get good enough experience with React you can easily move ahead with React Native which fun fact İnstagram mobile app is made with.
For those who keep writing jokes about stack overflow and ctrl c, ctrl v. Developers are problem solvers, and for you, beginners, what really important is to SOLVE THE PROBLEMS by yourself. OFC you don't need to reinvent the wheel, and you need to search for the solution of common algorithmic problem. But you should def figure out how it solves the problem, and what you can take from this approach and reflect on your future problems.
Great video. Thank you so much! Do you have any recommendations on books or tutorials about building a website from scratch involving all these frontend and backend skills?
Flutter also has Flutter Web, which is still in Beta. What do you think about it? Do you think it will overcome the limitations that has been identified about it? Or is it dead in the water?
Thank you! The video I needed to understand what to learn and look for. Im just starting out. Ill be back and show you what Ive created. Have a good one.
Great vid. Can you give us some structure on how to approach this pls. Say, start with app dev then networking the DB? Is that a logical sequence? And do u know or have used any particular courses on these subjects? Cheers
Be very clear, he's talking about L7 networking. If you wanted to understand a networking stack you'd need to take more than a few classes. But to learn L7 networking calls and specifically HTTP, this should come naturally if you do enough client api calls (ajax, etc). Also, you shouldn't say something like "I know databases." Sorry, you don't; nobody truly does. Do you deeply understand B-trees? Do you understand the locking mechanisms and the compare and swap algorithms. Can you design schemas? Can you adapt via migrations? Do you understand graph DBs, key value stores, column oriented DBs, document DBs, distributed DB caches, partitions, sharding, eventual consistency, ...