The KEY To Thinking Like a Programmer (Fix This Or Keep Struggling)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
yes the million dollar question for many of you guys who watch my channel is how do i think like a programmer right like how do professional software developers people who are getting paid to do this thing versus how i think what is the difference there what is the gap well many people will think that there's some secret sauce taught at mit or stanford that they're not teaching the general population that's the thing you're missing but the truth is it's not really like that at all in fact there are some tangible ways to think more like a programmer and if you utilize these strategies let's call them or ways to think like a programmer it will make your life easier and it will set you on a better path to learn to code better to get that first job and that's exactly what i want to cover in this video i want to base it more off of my experience of seeing many people go from not knowing much to actually becoming software developers a lot of the clients who i work with in my mentorship program and even to just distill it down to it's very basic so without any further ado let's just kind of dive right in here to get to the core of what it means to think like a programmer you first have to really get crystal clear about what programming is because i think people think you're just like writing code all the time and that's all it is really what being a programmer is is you're writing code to solve a problem that's the that's the simple as you can really get right so the problem could be very small or it could be very big right so for example if you want to take something that everybody pretty much knows like facebook for example was at one point it didn't exist right mark zuckerberg was sitting in a dorm room and he thought wow if i get people to connect that'd be really cool and i think that's a problem so he solved that problem by creating a large software application a very complex one or maybe it was something simpler than that but still complex let's say google back in the day they saw that all the email clients out there weren't very good so they're like let's go ahead and create our own email client and they created gmail something that didn't exist they thought could be really good could solve a lot of people's problems and a bunch of software developers coded that up so when you hear that you have to be a good problem solver that's where this idea comes from that's where this buzzword comes from because ultimately as a software developer you're solving some sort of problem you're creating a solution using code so with that all being said here i really want to introduce this idea of thinking more methodically right so if you're going to solve problems you have to think more methodically which is basically means you have more structure to how you think you're more orderly in your thoughts and i think the best way to demonstrate this for if this doesn't really make sense is to think about a scientist and adopt what i would call a scientist mindset when it comes to programming so scientists like you know go back to your high school days when you're learning about chemistry when you're in the lab and you're mixing elements and you're recording everything that's basically the way that you want to be as a software developer just like if a scientist had a problem right to say they wanted to create gold from just random elements in the periodic table which is a really cool idea by the way you should definitely do this hint it's not possible so say you wanted to do that you'd set up an experiment where you mix certain amounts of two elements and you try to make gold now if that didn't work you'd examine and try to figure out why didn't that work when i mix nitrogen and oxygen together obviously that didn't work why didn't that work maybe you'd come up with another hypothesis maybe you change the amounts the the chemical amounts and try to mix it again and see what happened and you keep doing that over and over and over again and the scientific method is a good analog to software development and thinking more methodically right so a lot of people when they get into this they struggle with learning to code because they learn the syntax but when it comes to the actual problem solving part of it they don't have an ordered and structured way of thinking about things so that's the first thing i really want to plant in your head as far as thinking more like a programmer now before we go on to my next point here i just want to briefly stop and say if you've enjoyed this video thus far please go ahead and go down and smash that like button below also if you haven't subscribed to my channel i cover all things self-taught programmer related so definitely go down there and smash the subscribe button also make sure to hit the bell icon so you get notifications anytime i put out a new video okay so if you understand that thinking like a programmer means being a good problem solver and thinking methodically well from there then the next thing that i noticed that really separates a lot of what i call amateurs like people who are just struggling to learn to code they're watching tutorials not really getting it to those who are starting to get traction and is really starting to understand how to think more like a programmer it's really about breaking down problems like big problems into smaller problems right so you bring break down something big into its smaller little requisite parts and this is called decomposition just like when a leaf falls from a tree and it dies it breaks down into its smallest parts its elements its cells that's the same way that you want to approach problem solving i've worked with so many people when i signed them a really hard project to do a really hard problem to solve the most people just get overwhelmed by it right they see that there's a really hard problem it's a really big project they get overwhelmed they're like i don't even know what to do well what they're the problem with them is they're seeing the problem as a whole they're seeing the project as in its hole in its entirety and they're unable to break that down into its smallest parts so when you have a problem when you have an application a project that you want to build instead of seeing it as this big problem you have to solve and not really knowing what to do you want to methodically break that down into its requisite parts and this is what programmers do really really well they don't see an application they see some they see something a piece of software that does a bunch of stuff and hey maybe it has a user interface so if you're going to build a let's say an expense tracker right you want to keep track of your expenses on a day-to-day basis it's going to be really simple you have to think to yourself not only from a user interface perspective okay so if you're going to build the ui the look and feel of it you have to think like what are all the components going to be on the screen right so maybe you're going to have some inputs where you can input some information you have to figure out in your head okay where are they going to go and then how are you going to display that data they're going to be is going to be like a table there what are the columns in the table going to look like and how can i delete items from each one of those so they have to have a delete button can i edit each one of those so you start to think about this even if you think about it in your head you can just sort of see exactly what you need to do what the user interface is comprised of so that's sort of the what now each application or project that you're going to do is also going to have an action to it right what is it going to do right so for example your expense tracker application is going to allow a user to create an expense it's going to allow a user to edit an expense and it's going to allow a user to delete an expense now maybe you're going to add more than that maybe you're going to allow users to log in so we can save that to a database maybe maybe not but either way you're kind of deciding everything that your application is going to do because once you've broken this down into its requisite parts then it's a lot easier to not only approach building it right so you can go through one by one and sort of either build out the user interface or you can actually start creating the functionality right you can actually make the expense tracker create a new expense but even beyond that before you start writing any code you can see the big picture and see all the different parts and see what you maybe want to throw out and maybe if you are going to build this in a certain way because you see all of the different features that you're going to build so that's the first thing i've noticed about thinking more like a programmer is programmers are really good about not seeing everything as a whole they see thing as little tiny parts that they can go through one by one and build it out the last piece of the puzzle when it comes to thinking more like a programmer is by far the most challenging to i'd say explain but also the most challenging to actually adapt to your normal thought pattern the next thing i'm going to show you is really how to think algorithmically so thinking algorithmically is a fancy way of saying thinking more like a recipe right when you create a certain meal you follow a recipe that's basically what you do as a programmer you create a recipe to provide a specific result because if i'm going to create chili achilles one of my favorite dishes by the way definitely recommend it you know i know the certain amount of ingredients i have to have tortilla chips onions simmering sauce to name a few and i have to cook that in a very specific way if i don't cook that the exact way if i turn the temperature on a little too long or i cook it a little too long or the temperature's off or i mix the ingredients the wrong steps the wrong intervals the result i'm going to get is dramatically different from what i want and so this is really really important for you guys who are new and this is really important as well for why you want to start on simpler projects projects that are easier to do than jumping into some of the harder projects for example i assign people when i work with them one-on-one to do something like a to-do app for example one of the you know most common applications that you're going to do but what i'm able to observe when people first start coding is that they often assume that the computer knows what they want to do right they can sort of read their mind like hey when i press a button i want a thing to show up on the screen i want a little li a list item to show up on the screen and that's one of the problems that you're going to have instead of thinking that in order to show something on the screen i have to access the dom i have to create an li element i have to add some text into that li element you sort of just assume that the computer knows what you want to do and this is the the biggest leap and by the way all the stuff i'm explaining to you can't really be learned through a lecture i can't just go through a lecture and say okay here's how to think more algorithmically one of the things you have to do is just go and try to do it you have to learn the programming language the syntax better and it becomes more clear over time how you have to think more in terms of steps like step-by-step process as opposed to just like i write some code and it does what i want because if you've ever heard this term before i think i've said it on my channel a few times the computer is really dumb so you can write some software to the for the computer to do pretty much anything by the way like pretty much anything that you write and code can be done on a computer but the problem is that the computer doesn't ever really can't really guess what you're trying to think and that's where most people get wrong when they start getting into code is that they think that if they learn to the syntax of a programming language that that will be enough to get any outcome they want but they don't realize that they have to get the exact recipe down for whatever outcome they want whether it's to do app whether they want to create a financial trading application you can actually create bots now that you know trade currency and that sort of thing or trade stocks but you are the director of that and you have to really break that down into it step by step so that's where it sort of ties in with decomposition with thinking more methodically and thinking more algorithmically alrighty so those are my thoughts on how to think more like a programmer if you enjoyed the video or want to share your thoughts on how to think more like a programmer please go down below and leave me a comment other than that if you're interested in working with me in my mentorship program i will leave details down below in the description of how you can potentially join the program other than that thank you so much as always for watching and peace out everybody
Info
Channel: Andy Sterkowitz
Views: 426,624
Rating: undefined out of 5
Keywords: getting a programming job, programming jobs, software developer, software development, software engineering, software engineer, self taught programmer, self-taught software developer, self-taught developer, andy sterkowitz, andrew sterkowitz, programmer, programming, becoming a programmer
Id: vrmKwQ-JPTA
Channel Id: undefined
Length: 10min 38sec (638 seconds)
Published: Sun Apr 11 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.