Recently I met my college friend Aditya Rao. I've known him for more than a decade and always thought of him as a business & marketing leader. ...
For further actions, you may consider blocking this person and/or reporting abuse
6 . Learn one thing at a time. Don't try to learn 2-3 different things at the same time.
Unless it's about Javascript framework...in that case you need to know about node, webpack, npm (still node, but more specific), and then your framework like Angular or React (so maybe TypeScript too !), and maybe RxJs too, and the librairies you'll use like ChartJs, Moment, Lodash...
Okay, i'm just kidding but I think learning 2 different things that are linked together can be more useful and relevant that mastering one, then the other :)
True, I tried learn webpack before angular and wasn't able to figure out why I would need to use some of its tools. But after I have played around with angular I was able to understand more precisely how could I use it properly.
"but I think learning 2 different things that are linked together can be more useful and relevant that mastering one... " yeah......i totally agree this. Learning two things which are related, has helped me a lot. The thing which I could not understand from one, learning same thing from another related thing helped me to learn that thing easily.
Went from python baby steps to js baby steps. That webpack, npm, node versions, eslint setup, formater, basic unit tests, asynchronus code it was just blind skiing in forest trying to not hit a tree or moose.
This is a good one!
I'm definitely guilty of trying to learn multiple things or working on multiple projects at the same time. Focusing on a single thing/problem definitely does help make progress faster.
I have learnt this lesson too late.
I would say "focus on the problem in front of you". You might need to learn 20 things to solve that problem.
I'm sorry, I'm going to heavily disagree with you on this one. This is gatekeeping behaviour.
Everyone has the capacity to learn and become who/what they wish to. Nobody is born with an innate talent to code. We are all learning through this journey.
At one point, even I was a shitty monkey-coder (not much better today) and I'm super thankful to the people/mentors around me who helped clean up my shit. I learned a lot during that process and I hope to pay it forward to the next aspiring coder after me. That's how we progress; as people and as an industry.
Exactly that's why I'm spending a whole day fixing "small" bug. I believe you faced this: you make a small fix, but then SOMEHOW GOD WHY this touches a place in a project not even related. And then you found deeper and more general mistake, try to fix it, and again it pulls another issue, a snowball is growing and finally hits your face.
What's the result: the customer gets a shitty product, you are frustrated. All this because someone decided he/she could be a software developer.
You did really good job in this post - described how to be motivated and become a better programmer. But we are not living in a perfect world, full of unicorns. That is why I prefer to give practical advice, that everyone could try right now.
I agree I've been in a similar situation. More often than not, I've caused this situation to arise. But there's a big difference between telling someone "They shouldn't be in this profession" v/s "Here's how you can do better in this profession".
We aren't living in a world of unicorns and we should find better ways to imparting this knowledge. Everyone stumbles when they learn to walk. Imagine if your parent told you that you weren't cut out to walk instead of helping you improve your gait and make your legs stronger.
It's already too late to tell someone who's messing with a real project "You shouldn't be in this profession". I wish, but I'm realist. That's why I've added number to my advice - #0 (see my first comment, I have no idea why it starts with "1.", in the editor I see "0.". Some bug, probably.). I just want to prevent appearing of new "stackoverflow-developers".
And if we are playing in crazy comparisons, imagine the doctor, that keep failing in diagnosis, but keeps trying because keep hearing, how he/she can become better in his profession.
That's literally how Med School works. :)
School - maybe, but not a hospital. Such a doctor would be fired in a blick.
I am currently following an online Bootcamp (software engineering) and a bunch of related course in a complement of the program. I just wanna be the best. I am 28 years old. I studied applied economy. I have a pretty good statistical background. I will probably learn data science after who knows. Anyway thank you, I will do my best. It's just madness the country that I am living right now, but I will get it done.
It's great that you are learning to code. Wish you all the best for your journey!
Great points.
When I've taught people how to code in the past, I definitely found that people get in their own way a lot. They try to "just power through problems" (instead of googling), they get super overwhelmed at the entire problem (instead of going one step at a time), and they work on problems that aren't useful or interesting to them.
So these points hit all of those really well - and it's really important message for anyone learning how to code. Thanks for the post!
Good mentors like you make a huge difference in separating the wheat from the chaff for beginners. They don't know what's important to solve and what's not. And not seeing progress for a considerable time can become de-motivating.
Focus is key, without it coding is a real struggle. Since I been diagnosed with ADD I have been more aware of what the struggle is about. Most is about Self Reflection. Realizing what it is you are doing wrong. Asking the right questions.
Get to know yourself in these situations, step away from the screen when you notice it and it isn't productive. Reflect and most times you know what it is you are not doing right.
I agree, focus is critical; especially while learning something brand new. Since, I'm always interested in multiple things, drawing up a "calendar of learning" has helped quieten that curious devil inside me. It's a useful way of telling my brain to not feel the FOMO as we'll get to the new thing in 2 weeks from now.
And thanks for bringing up non-screen time! Most good ideas come in the shower. :)
Great advice!
I would add to focus on one or maybe two thing, if you are following a bootcamp then throw all your free time and energy in it, if you are learning your own way then try to focus on one site or tutorial, there's just too much around internet (sites, bootcamps, tutorials, etc).
That's absolutely correct!
A generic version of your observation is that if you have access to active guidance/mentorship, it's OK to explore. The guide/mentor will help you sharpen your focus and get you unstuck.
When striking out solo, it's best to follow a narrow path lest you get lost in the forest of programming and it's idiosyncrasies.
I like your points! But I would change the last one a bit. Instead of something useful, make something meaningful for yourself. Usefulness of tools you create as a beginner is often lost quickly. Or it becomes a necessity to change your tool to keep it useful. Go for something meaningful (when something is useful, it is often also meaningful) Instead. A own website is not always useful, but can be meaningful for yourself.
I agree. Especially with the personal website.
Most of my initial knowledge about HTML & CSS was derived from building personal websites for myself. In high school, it underwent radical changes every week! The more I found out about img tags and gifs, the more 90s design was put in. :D Definitely a meaningful project for me.
I struggled hard with #5. They say the best way to learn coding is by building something. So I figured, I might as well build something useful while I'm learning instead of another calculator.
Deciding on an idea of what to build takes me a while. And when I start building it, I either realize how useless the idea is or that it's impossible to build as a beginner. Some people just don't have great ideas and that really held me back. Coding is about figuring out how to solve problems, but if you don't know what those problems are in the first place then where do you start?
I think the solution here is to just choose a website like Facebook or Amazon and try to build it. You'll still need to find a course or tutorial that will teach you how to start. Copy another web app or two and maybe you'll start to come up with your own ideas.
-- Learn agnostic things
ReactJS, Laravel, Symfony, Angular, Spring, TypeScript, Redux, Gulp, Webpack etc etc are just logo's.
They will disappear. None of it will matter in years. I've been through a list of 60+ logo's in the last 15 years. Most of them do not matter anymore.
A developer's life may take up to 45 years, so learn things that can be applied in future frameworks and all programming languages.
-- Learning is something you do, for you
Your boss might want you to work in Macromedia Shockwave for internal programs for the next 20 years. It is up to you to explore the landscape and see if there better things to learn.
-- You will never stop learning
And you will never rest before you understand the problem that you are trying to solve. You need to learn about business and systems. When the going get's tough, the tough get going.
-- Tips won't help you get motivated
Motivation in this profession comes from an deep feeling of wanting to explore and try-out many things. You can not help it to find something that is a great sollution for your current problem. That stuff makes you come out of bed in the morning and will keep you motivated through you working life.
-- Motivation comes and goes
There are many times that you are doing other things, like holidays or having a good time offline. This will make sure that you stay fresh and motivated. Life is what happens offline.
Its been almost eight months coding. Before that, I was a teacher but always wanted to learn coding. Then I quit my job, started learning coding and here I am. At first, it was frustrating but my passion to learn coding kept me inspiring. And I am happy with what I am now...
And along the way doing some side projects might also keep us motivated and get our hands dirty with the new technologies.
That's the whole point! Side projects is how we all learn anything new.
I would be suspicious of a programmer who's Github profile is not a graveyard of un-finished projects. He/she is a psychopath or not trying enough new things. :)
Maybe you don't have what it takes to express your thoughts?
I highly agree with the item 5