Hello, this being my first blog post, I thought it makes sense to write about some of the lessons that I have learned so far while growing my programming career.
Some of these lessons I've realized do not only apply to developers but also to other projects and fields one may choose to indulge in. I still struggle with some of them but every day is a learning day and as long as I'm aware of them, I'm getting better, and now so will you so let's get started...
I've learned that to truly master a language, or a concept in programming takes time, and rushing through it actually is a waste of time in that you may think you've understood it, but in a few days, you find that most of what you skimmed through has evaporated and you've actually retained very little.
This leads to a cycle of going back and forth where you keep going back to learning simple stuff you've covered and waste more time. Take your time, being a skilled developer takes time. So my advice from this would be;
It's a marathon, not a sprint.
Sometimes I would take a course, documentation, or a book to read and somehow I would look at what I had to cover and frustration would set in.
There may be hundreds of concepts or methods in a book, an article, a course, and definitely documentation. If you rush to finish it without truly understanding every concept, chances are that when you're done, you'll remember very little to even use it in a project.
There is nothing as frustrating as trying to learn something new and getting nowhere. Trust me, it happens to most people and when it happens to you my advice is;
Take a break and go through it again later.
I used to think that just practicing how to code in a specific language was enough but with time I came to realize that I couldn't utilize most of the concepts I had already learned and even ended up forgetting them.
One of the most overlooked realities by new programmers is that we don't learn to just know how to do something, but how to actually utilize it in projects. if you learn a concept and don't use it in any project then all you've managed to achieve is waste your time.
To me, this has become a really amazing learning methodology because every time I learn something new, I immediately think of how I can integrate that feature in one of my projects, and by doing this, I get to even do more in-depth research on various ways it can be utilized hence truly understanding it. My advice;
Strive to create real & marketable projects.
Have you ever heard of the saying "Hard work beats talent any day."? I even believe there's is a song about this. Anyway, I in no way suggest you don't admire other people's work, it's a good source of inspiration, just don't compare where you currently are and what you are capable of doing now to what others are because this is one of the sure ways of getting frustrated with your coding journey.
Realize that even your mentors and role models didn't start where they are today. Don't believe me? Some of your mentors probably have documented their first projects or better yet, check their first youtube videos from their channels or even tweets and you'll be amazed at how far they have come.
I personally had a tough time with this one. *I mean there he is talking about all he can comfortably do and has achieved and I'm here having a hard time even following his logic - this comes so easy for him- he must be very talented at this...........*Sorry, got a little bit distracted.
The point is, we all have different capabilities when it comes to reasoning and learning and if you compare your speed with others you'll end up unsatisfied with your progress. Remember there are no deadlines when it comes to learning, Move on only when you've understood it not when it seems convenient. My advice, follow the words of a writer by the name Uzoma Nnadi ;
“Iron can only be destroyed by rust, and rust is a slow process which is caused by the hydrogen ion from water in the environment. Coat yourself against negative thoughts and be careful what you feed your mind because your mind is your greatest asset, make sure you are not using it against yourself.”
I can not count the number of times I have given up on coding only to look back after some time at my unfinished projects and wonder wow did I really do that? The point is, take some time and look back to where you've come from. look at your first projects and you'll notice how far you've come along.
Remember the journey of a thousand miles starts with one step.
How I wish I paid enough attention to what the tools I use are really capable of when I started, it would have saved me so much time. One of the things that get me every time is how powerful VsCode really is, which is my all-time, go-to code editor.
Right now I can only speak of this tool but this point applies to every programming tool in your arsenal. if you are like me and use vs-code there is a series of videos by Burke Holland and Sarah Drasner you can find them here labeled vs-code can do that. Believe me, when I tell you this, many people so underutilize this tool. there are so many ways this tool makes your job easier, it'll make your head spin.
Another very underutilized tool is codepen. One of the major problems this tool solved for me is the storage of code snippets. There are times I would work on sliders, buttons, and other snippets and did not intend to use them on a project until they are complete or even needed to practice and retain the small snippets of code and this tool is just what I needed.
Others are just candy for programmers like Git & Github, which to be frank I'm still getting to really understand its power. My advice;
Get to really know the tools in your arsenal, your career may depend on it.
You would think this goes without saying or it's the easiest of all but apparently not. There are days I would code and learn six-seven hours straight only to have excruciating headaches and fatigue. Taking a break or breaks is very essential to develop your coding career because your health is a paramount factor in how far your career goes.
The truth is, a human's attention and understanding really reduce after every 40-45 minutes of continued working on a particular item, and hence it's advisable to take short breaks of about 5 minutes. Come to think of it there are even applications that strive to improve your focus and concentration while working, my favorite being Forest. I am sure there are others probably even more effective but I think it's a good habit to utilize one while working. Pay attention to the words of Buddha;
“To keep the body in good health is a duty…otherwise we shall not be able to keep the mind strong and clear.”
Have you ever asked someone what their hobbies are and they responded - coding? I know, as much as it's not a crime nor is it a bad thing it just sounds weird to me not sure why. I know most programmers are avid gamers which helps reduce the anxieties and stress brought by hours and days of bugs and debugging.
Personally, I am not so much into gaming, I wish I was but I'm more leaned towards Netflix or a nice book or two. Whatever you are into besides coding, keep it and protect it if you have to, it may be the only thing to keep you sane when going through algorithms, data structures, and debugging. Maybe I should try chess...Have you watched the Queen's Gambit? Maybe you should.
I haven't really indulged in this, but I can already tell I'm losing a lot by not participating. I acknowledge how powerful this can be especially in the tech world since collaboration and teamwork are not just words to throw around.
Github encourages this fully as well as other challenges like #100daysofcodechallenge. These challenges are meant to keep you on your toes when it comes to the ever-changing tech, learn and teach others as well as improve your coding skills.
I can tell you this for free giving up is very easy all you have to do is stop. Stop learning, stop coding, stop building projects and in a few months, you'll remember nothing. Don't do this, sure it's difficult but if it were easy everyone would be doing it.
If you give up the journey back where you are will be twice difficult than it already is, know why? it's not only because you'll be a bit older, wrinkled, and cranky, but technology waits for no Quitter. A Lot will have changed and it'll take you twice the time to learn all the new stuff. Take the words of Jim Rohn to heart;
“The worst thing one can do is not to try, to be aware of what one wants and not give in to it, to spend years in silent hurt wondering if something could have materialized - never knowing.”
To conclude, I'd also think getting a mentor, specializing in a particular technology, joining Linkedin, and teaching what one knows would speed up your career growth but what do I know, I'm working on half of the list and have quit more times than I can count but since I'm writing about it and sharing my code and experience, it seems that's all behind me and will make quite a story when I get the title of a mentor or is it sensei.
I'd have had a lot more to say but apparently, people can tolerate a chatbox for so long and I've got to get this contact form working. Oh Follow me on Twitter my account looks like an abandoned canoe in the middle of an ocean plus I'd really appreciate it. ciao- until the next post.