WHY IS CODING SO HARD……
Hey Friends, welcome back to another blog of freelancer mind and I wanted to talk about why programming is so hard and the fact is it’s actually not that hard but there are a certain number of roadblocks and if you don’t clear these out of the way or if you’re not mentally prepared for these then.
It’s going to really mess you up and you may find yourself stuck on some of these you may even be banging your head against the wrong wall when you realize you’re not even going in the right direction here I know that there have been some people who say maybe you have to be born to code kind of like how you may need to be born to be a really gifted musical composer and I can tell you that at least for myself I learned to code but it was a real struggle even for me I started at a very young age and say sixth grade but even as I was getting through learning pointers.
I remember crying during those first few lessons because it was just so difficult I know this though that those who persisted were able to get through it and there are a number of things to watch out for on your journey into software engineering if that’s what you’re going for here now when I first began learning to code it was so difficult look I’m not going to read this whole thing for you guys just don’t be stupid check out the program tech interview pro com so one reason that I think coding may be difficult is because it is a combination of three different skills actually not just one so you do need the coding ability but to really be an effective software engineer and to actually get hired as one which validates your skill sets you also need problem-solving ability algorithmic ability right that ability to analyse a problem and come up with the solution not just coding it we just say the implementation and then you also need communication ability because coding is very much about teamwork if you go into an interview and you are not able to communicate properly you’re notable to express your ideas and thousand to have that teamwork capability then you’re not going to get hired and then you’re going to go around thinking that you’re not a really good programmer you may actually be fine in terms of technical skills but maybe you were missing that communication portion and the problem is that many people will have say two out of three of these skills right you may be good at coding and algorithms but you’re not very good at communicating or maybe you can do some communication and coding but then you don’t have that algorithmic analytical portion and you really need to have all three portions to be effective.
Now the second reason that coding is difficult I believe is because it requires an inordinate amount of time sitting in from the computer and just staring at that screen and this is going to be probably far more time than you may be used to right for most other disciplines you don’t need to be sitting down for a large amount of time focused on something like say two to three hours you can learn on the go right you could go to a restaurant while you’re eating maybe you could read up on a little bit of biology right learn a little bit of chemistry while you’re in the car spend twenty minutes at the beach reading a chapter of your history book that’s okay that’s fine then that type of learning can be done in segments but for computer programming you really need to be sitting at a single place at your desk at the computer for a long period of time many people are just not used to being able to do that and they think that that is just way too much and they’re not able to handle that and as soon as they’ve sat down for say even 30minutes they just say this is way too much you know this must not be normal they must not be good at it no that’s fine that’s actually the proper path and the way to do it the thing about programming is that there’s a certain flow of things and you have to get into that rhythm the study patterns are quite different than other things that you maybe normally used to now another reason I think that coding is difficult for people is that it requires abstract thought which is a skill that most of us have not really been taught and many people can go through life without really using much abstract thought you go through most of your say high school without having to actually touch abstract thinking at all and even many people will go through college and their whole lives without doing this but it is about elevating your thinking and generalizing towards more broader concepts and relationships between objects and concepts instead of looking directly at the specific objects right so.
For example if you take a look at the dog you may say at first that the dog’s colour is brown and you have a computer program that does this but then you may be thinking if you were to start thinking about this more abstractly why do you even assign the dog’s colour to be brown in the first place right maybe the dog’s colour should be assigned when the dog is born when the dog’s name is assigned at the same time that seems to make more sense so you group all of those things together but then you start thinking well why is the dog a special object within your whole entire system should the dog be a special object and should you be the one assigning it right here in the program is the dogs more special than anybody else why not assign the cat a name why not assign the persona name and the colour as well so then you may say okay well let’s generalize the concept of a dog to an animal and then you have an animal factory that is able to initialize these objects and assign them names and colors and then you may start thinking well why are you even doing this client-side should then they all be driven by the server and it should be the server which is the source of truth so you move everything to the server and then the client has no concept or notion about what an animal even is the client is just a dumb but view for rendering things so that gets towards abstract thinking it helps you generalize your concepts in the computer system many people though they’re just going to say well why do you have to go through all that the dogs color is b and let’s just leave that that if you’re good at abstract thinking.
I believe that it will also make you a good problem solver another interesting facet about coding is that you’re never actually done learning and there is no true sense of accomplishment the field is just so big so usually you just start learning something and you feel that you’ve only scratched the surface of it maybe you only really understand 10% of it and that’s about right let’s say you’re trying to learn react is you pretty much just learn whatever you need to get your portion of the work done but you never really try to learn the whole thing the framework is always changing and there’s always new technologies coming in and parts of it being outdated and deprecated all the time such that you’re sense of knowledge is always incomplete and for some people they may not be used to that right you may be learning a physical equation or a math equation and that’s complete and you have the entire knowledge right there you could be reading a history book you’ve read the whole chapter and that’s about all there is to it and you can piece together the events 100% almost but in programming is more like you only know about 10% and sure there’s a whole bunch more that you can learn but that’s fine and you just leave it at that.
The other thing is because the field is so broad it is easy to get lost in the weeds somewhere and it is easy to get off track if you’re not focused and you’re learning you could be wasting your time learning all sorts of random stuff that aren’t really useful you can spend all your time learning about assembly code optimization which very few people are going to need or you could be wasting your time learning some technology that’s just not very useful like how to decompile n64 game cartridges in many ways learning code is a battle against time in which you want to prioritize your learning and make sure that you’re always on the right track and not learning some piece of technology that’s not very useful and I think people also really need to ask themselves do you really want to code do you think it is cool I think a lot of people maybe they look at the amount of money the salary income that software engineers are making they think that part’s cool maybe they look at the lifestyle but do they truly want to be a programmer themselves or do they see that as something that they may be doing for say 1 or 2 years and then just give that up because their heart was never in it in the first place they don’t think.
It’s cool most of us we are not brought up thinking that software engineering is very cool right we take a look at rock bands singers musicians being an actor or actress well that seems cool and a lot of people would be willing to put everything else on how to chase their dreams for that but how willing are people to give up say a Friday night out at a bar with their friends to just sit down and code not many people are willing to do that because they just don’t think that coding is that cool a lot of people think that coding is something that you just pick up on the side like learning to play that ukulele it’s not quite like that it requires more commitment than that now one more thing here is that the results will validate you so you may think that program is hard until you land the job as soon as you have a job then you’ll feel like oh hey yeah it was pretty easy and this is where one big disconnect is that the coding interview process is often completely different than actual practical real-life programming and it is actually a separate skill set right you got to go through white boarding questions and solve a bunch of brain teasers and specific coding related it’s questions and there’s a whole different set of skills involved in that so the challenge is that people maybe they get through some coding practice and they’re actually pretty good by then but they can’t get the job so then they think well coding is just seems so difficult it’s actually a different skill set that you have to learn to pick up and this is where I recommend you get some interview training ex-google and X Facebook engineers we’re putting together a training course program for you tech interview procom so check that out we’ll get you all set that will teach you everything you know to pass the coding interview for large tech companies in thing so I’m talking about coding data structures analysis communication behavior and all the other skills that you’re going to want to watch out for you know one quote that I always think about is the smallest decisions in life often have the greatest impacts when you invest in yourself maybe one day for in the future you will look back on that day that time and you’ll say that was the turning point right that smart decision to invest in yourself I invested myself my own skills and that just sent me on a totally different career trajectory and brought me to the success that I have today let me know why you think coding is difficult if you .
You guys can easily learn great and new skills from udemy.com .
Thanks bye .