A little bit about me
I am Olufunke, a wife, mother and software developer. I have a degree in computer applications, but all I know for the past 3 years in programming language is self-taught. My journey into information technology discipline started when I became fed-up with the way university curriculum were designed in Nigeria which made me enrolled for a professional course in CCNP Cisco Certified Networking Professional before pursuing a degree in Computer application in India.
I am presently a software developer/tutor and program Manager at WAAW foundation, an organisation that specializes on empowering more females in STEM disciplines through hands on practical on real life situations. The people I have had the opportunity to teach and mentor often ask me questions as to what the best language to learn and how to go about learning in this rapidly growing technology, hence I decided to share my learning experiences journey while learning Node.js.
Lesson 1 – Don’t be a stereotype when it comes to knowledge of programming Languages
There is no right or wrong programming language, start by asking yourself what you want to build, As for me, my chosen research project for my master degree demanded that I develop a web application using Node.js. You must have what you intend to build in mind; also the type of organisation that you intend to work with could help in making that decision, are you willing to work with a tech organisation that is looking for specialty in a particular programming language, do you want to build a mobile app e.g android/ios application, a web application, a desktop app or a game, find out the answer to this question and then let that answer guide you to choose the technology and programming language you will use to achieve that goal..
Lesson 2 – Set goals
For every action you want to take, a goal needs to be set, having an outline plan to follow on each step of the way, how far you want to go in achieving this goal. It’s really up to you to structure your goals.
I had a period of three months to complete a web application using a programming language (Node.js) that I have just been introduced to, it was really a tough situation and this require planning of my time. I had to break down all the task involved in this regards into simpler unit that I can easily relate.
I remember developing a to-do list app to serve as guide in scheduling my activities from the beginning till the end of the project and yes when you learn with a structured goal, you will be amazed at what you can learn in few months that might have taken you years to learn. I will take an excerpt from John Sonmez
“Growth becomes easy for you as you become accountable to yourself, so you can ask yourself some questions like; what do I want to get out of this career? Where would you like to see yourself in 5 or 10 years? Go ahead and spend some time thinking about this — it’s really important. Once you’ve figured out what your big, far-off goal is, the next step is to chart a course to get there by making smaller goals along the way. If you can make small goals that gradually move you forward in the direction toward your bigger goals, you’ll eventually reach your destination.”
Lesson 3 – Be curious to know
Knowledge has to be sought most of the time and found at all cost, and this makes reading not an option for any programmer, to become successful in life generally, you need to find out how you can from those you look up to, your mentors. Unfortunately not all of them are physically accessible but thanks for the gift of books, articles, blog post through which those mentors which in this case experienced developers most of the time share their experiences.
While I decided to learn Node.js, I read almost ten articles on this topic which gave me an idea of what can be done and has been done with this framework; I was later fortunate to physically meet one of my mentor Uzochukwu Eddie Odozi, who i bought his course on Udemy. I contacted him online to know where to reach him for the materials as I can’t continue to burn the epileptic internet connection we have in Naija. Not only did he give me the tutorials free, he also gave me more materials that will help me in my journey. Seek and you shall find!
Lesson 4 – Learn how to learn
Learning your first programming language is always the most difficult; once you learn one programming language, learning a second one is easier. Yes, the syntax is different. At their core, all programming languages share basic constructs.
You need to learn new terms from different programming language fast enough to adapt to the fast growing technology coming up everyday. Don’t try to learn so many things up front, let your curiosity drive your learning process. You will definitely have questions when working on any project, that is what will guide you to seek relevant information from multiple resources such as books, video courses/tutorials,blogs, magazines, expert opinion, etc. There are ways that can enhance your learning as described by John Sommez in his book ‘The complete Software developer’s Career Guide‘;
Lesson 5 – Learn by doing
Once you understand that there’s nothing new under the sun, whatever project you want to do some one must have done something similar if not the same, work on open source project on Github, understand each line of code, remove and add your code and see how it works. It is always difficult but understanding how to read and modify other people’s code quickens your ability to learn faster than you think.
While I was learning Node.js, I discovered that someone has done something similar to what I intend to present for my project, this makes my work much easier and I adopt the project into my own work in other to achieve what I intended.
Lesson 6 – Learn by teaching others
You definitely grow when you help others grow. In my case I shared with my spouse before I decided to share with others and the more I teach, the more I know the terms and technology. This allows you to be able to process the information in your head and organizing the thoughts out in your own words for you and others to understand better.
Learning online on your own can be extremely frustrating, there are several tech community to meet other developers that you can collaborate, grow and learn together, not to mention the opportunities that comes with meeting people of like minds. I was opportune to attend the bootcamp (SHE Hacks Africa) organised by my present place of work and the rest they say is history. I have had so many opportunities to work with great developers on different projects through going for hackatons, tech conferences/meetups etc. Here are tech communities you can join : SHE Hacks Africa, Andela Learning Community(ALC), Google Developer Group(GDG), Consonance club etc.
Don’t wait till you know it all, try to register and participate in hackathons and coding contests, even if you don’t win, it gives you some kind of confidence that your skills have been tested and build solutions to real life problems.
Even if you have over 10 years of experience in software development, you will still continue to learn new technology and grow. Start seeing your learning process as a journey not a destination.
Do I still feel like I have a lot to learn in the coding world, oh yes, it is completely normal to feel that way, have I grown over the period of 3years? Have I applied my skills to building a project? Have I made an income alongside learning? YES! YES! YES, not because I know it all but because I know how to source for information and get the work done.
These are just few of the lessons I’ve learned. I hope they help you along your journey. I’d love to read more lesson you think might be useful in the comment below. Also to learn more about node.js, follow me on medium, Twitter. Thank you for reading.