From Novice to Machine Learning Engineer in 2 Years
Ikechukwu Ogbuchi
IT Professional | Researcher | AI Educator | Son | Brother | Friend
Yeah, you read that title right and you can even do it for less time! For starters, Machine Learning or ML simply refers to a set of programming and statistical techniques which teaches a computer how to learn from data without needing to be explicitly programmed. ML is the underlying technology that supports Artificial Intelligence (AI)which refers to the ability of computers to possess human like intelligence or make decisions the way human do. Data science is the broad field of study that combines techniques from different domains to study data and derive insights from it.
In 2018, I was a complete novice in the field of Data Science, Machine Learning and AI. Even though I knew some very basic python coding which I taught myself during my sophomores in college, I still knew very little about those fields in general. However, I was really interested in growing in the field and really grateful about the progress I made in 2 years. I am prompted to share my journey through those times to encourage anyone who is really interested, but feels overwhelmed about how to start. This is how I grew from being a novice in ML to a certified machine learning engineer who designs neural networks.
After Graduation from school and going through the mandatory National Youth Service Scheme, it was a little difficult to get a job in an IT related field because a lot of companies mostly needed experienced hands, but luckily for me an internship program came up around same year which was created by Zinox institute of technology in partnership Microsoft. I applied for the program and was accepted mid 2018. That was where my journey began.
The structure of the program had to do with a hybrid of classroom and self-paced online learning. However, most of the work was based on online self learning where you had the flexibility to explore the IT fields you are interested in and dig deeper on your interests. This was where I started getting used to online learning and my first platform of video course learning was edx.org. Prior to the program, I had learnt a few things about Python code from the website sololearn.com, but it was just basics and why I used the platform was because of my data usage limitations at that time. The site needed minimal data to run on my phone and pc. In the internship program, we were not only pointed to edx learning portal, we were also provided the resources needed to learn: unlimited access to Internet and good devices. So basically, all I needed to do was get myself to the learning center and learn. No more worries about data consumption or device capacity. This played a key role in accelerating my online learning. The key steps from here were knowledge acquisition, practice and applications.
To begin with, I started with a solid understanding of Python. There are a ton of resources now online where you can learn that for free. But my starting point was with Introduction to Python Fundamentals on Edx. Took me about two months to really get through the curated structure in line with the course. But after then, I felt confident of my Python skills and decided to take a chance at other courses. One was: Principles of Machine Learning Python Edition and the other was Machine Learning for Data Science and Analytics (both on edx). I I could not make sense of what was going on in those two courses no matter how I tried. It dawned on me that I had skipped a lot of steps in trying to go rush into ML with just a fundamental understanding of Python. So I took some steps backwards, practiced more of the fundamentals I had learnt, explored Python scripting and had another go at one of them; the Principles of Machine Learning Python Edition. It began to make some sense to me even though the course focused on the principles and gave an overview of what the ML field would involve. I was able to understand enough to go through the course successfully and through it I got a great breakdown of the steps needed to gain mastery.
The steps I found has been as follows: gain confidence in Python programing through mastering fundamentals and practice, learn about Data visualization/analysis, then on to Supervised learning, Unsupervised learning and then Deep Learning which involves Neural networks. This was a clear enough roadmap for me and I devoted time to each segment. After the Principles course, I took about 6 months to dabble into Data Visualization and analysis, still using Edx. During this time I explored courses like Introduction to Data Analysis, Essential Statistics for Data analysis using Excel, Analyzing and Visualizing data using excel and a few other visualization courses. It dawned on me that I did not know as much capabilities in Excel as I had thought. This step also took me through data cleaning and exploration. And I only began to appreciate this step when I started building models because it became evident much later that to build good models, you needed to understand the data and ensure it is of right quality. During this time too AWS released a free course on 'Math for Machine Learning.' which I took and found useful to understand the Mathematical basis of ML, but at this point I was not yet building models, I focused on knowledge acquisition to really understand what I was doing.
It's important to point out that this needed a whole deal of commitment and dedication. I was combining this with actual work as an Engineer in the company I was later assigned, so mostly dedicated spare time of at least 2 hours each day to work towards my learning. I tried not to miss this schedule because however little I had learned each day contributed to my overall learning. During weekends when I have additional time to spare outside of work, I add a few more hours to that just to catch up. Building these habits really helps your learning.
And then when I felt really confident in my Data analysis, cleaning and visualization skills, I felt it was time to dabble into ML. And I did. During the second half of 2019, I began studying materials on the subject of ML/DL and started taking up online courses then. I began exploring another learning platform Coursera because of Andrew Ng who had a machine learning course as at that time which was popular and that was when I went through the Deep Learning Specialization Course there which gave me a good understanding of Neural Networks. Linkedin Learning also for some reason had offered me one month free access to learner content in October and I used that month to focus on content related to ML.
During that time, AWS had a machine learning online scholarship program going on and I did not waste time to apply for it. And in November 2019 towards the completion of that year, I was selected for the program. I sometimes get the question, 'How do I get to know about these scholarships?' My answer is, 'I think if you are really intent on something, somehow the best opportunities present themselves to you. However I usually just google them.' A lot of top online learning platforms like Udacity, Coursera, Edx and others have scholarships sponsored by companies intent on making skill acquisition available to deserving and interested individuals. The question is usually, Are you looking? I also sometimes get emails from some of the online learning platforms I have registered on to inform me of such opportunities.
After my selection for the AWS Program, I now had access to a more structured learning in ML and this was the course that really broke down a lot of things and got my hands dirty on some real applications of Machine Learning. The projects involved in the Nanodegree programs were not easy to pass, so you just had to know what you are doing to complete the Machine Learning Engineer Nanodegree program. This took me about 3 months and I completed it in Feb 2020 just around the time the Covid issue was getting really serious and lockdowns began. Our style of work changed to hybrid and then remote. But during this period, I became confident with building supervised and unsupervised learning models. It also sparked my interest in deep learning and Computer Vision. I took additional 3 months to learn more about Deep Learning from another program by Bertelsmann/Udacity.
领英推荐
Covid changed a lot of things last year in how we worked and interacted, so The remaining 6months in 2020 were just focused on building things with everything learnt. I worked on collaborating on ML related projects both online and offline. I experimented mostly on building models and developed strong interest in computer vision related ones. Sometimes they were not good enough, but I was just building them for fun and to improve upon them. So far during this time was when I found a lot of like minded people around me and all over the world doing amazing stuff in field. During this time too, I had participated in online hackathons with internationals teams and have won two with amazing team members. I was also happy to be offered a nanodegree scholarship by Microsoft in partnership with Udacity which lasted for 4 months in October 2020. I have also met with amazing scholars, ML practitioners, researchers and students by virtue of this particular nanodegree. It was the most fulfilling with very rich course content.
Earlier this year, I attempted the Microsoft Certified Data Scientist exam and passed at first try which somehow proved to me that at least I was actually learning properly. I also participated in an exciting AI competition with a team of ML/AI practitioners and developers. Although we didn't win, it provided an excellent opportunity to practice with these skills, network and grow in experience. I am exploring avenues to carry out research and add as much value as I can to organizations, firms and small business with what I have gained so far. And it has really been an enjoyable process with lots of opportunities to grow.
Although, I understand I am still far from mastery, I strongly believe that if you can dedicate a few hours each day to increase your knowledge in the area following a great roadmap like the one suggested here, you to can become quite capable of a lot in 2 years. However, there is a lot more room for learning. Till today, I still google certain errors in my code and I have had stackoverflow and online documentation save me from some critical situations.
So how to start? First off, remove it from your mind that coding is hard. Coding isn't that hard. As a matter of fact, you don't have to enjoy coding to be a machine learning Engineer. You just have to understand what code does and how to use it to solve problem. The important thing here is really your interest. I do not spend all day coding myself, staring at dark screens and looking like a nerd..lol. I'm a kind of person that loves to solve problems and work with people. So I code sparingly.. and when I code, it is to solve a specific problem. You don't have to love coding to be a data scientist or machine learning Engineer. Coding is just a means to an end.. not the end itself. It is always important to take breaks and have fun along the way. Trust me it helps. Sometimes, I have found that when I am stuck in building a model, the best thing is usually to stop trying to fix it and go do something else fun. When I return, I am surprised at how easily the solution comes!
Coding should feel like writing. You don't have to love writing to write. You have to write down stuff in your diary so you don't forget.. you don't write because you love it.. you write because you have to. And when you write, you don't have to write a novel, or a manuscript or a story. You just write down what you need to.
That's the way you need to see code. It's a tool. What you do with the tool is up to you. And no offense if you love coding.. please write long codes.. I'm just saying you don't have to love it to develop mastery in machine learning.
You DO NOT need to know a lot of math either.. now though a basic understanding of statistics and probability is needed. You don't really have to be a math guru to understand what is happening in ML and data science. The link to all the math you need to understand in basic form is here. If you were able to pull through high school math, it's a piece of cake.
So first step is to learn Python.. learn as much about python basics as you can. Then Data Analysis/Manipulation and Visualization to ML and DL if you choose to go deeper. It is not rocket science.
You need internet data. Lots of data.. To learn any programming language from scratch by yourself, you'll watch a ton of videos and do a lot of google research by yourself. So if you can subscribe to a plan that can enable you run these courses. It's okay. If not, try to get access to a free WiFi you can use to start for the meantime. You need a good PC, so your apps can at least run smoothly.
If I could make this progress in 2 years while combining work with it and still find time to have some fun, I think you can do it for even lesser time. Although the important thing is not speed but a very good understanding of what you are doing and why.
Forgive how lengthy this article was. I hope it could serve as a good guide to anyone who is interested in ML but don't know where to start. If you are dedicated and Willing to learn, it will be become easy with time. Don't rush. Just look out for learning resources, make a plan and stick to it! That's all it takes. The hard part is the willpower to see it through and everyone of us is capable of developing it. All the courses mentioned are only a Google search away. Top sites I use are Udacity.com, Coursera.com, Edx.org, Aws.training, Linkedin.com/learning. A lot more free courses can be found online just by searching.
I hope this article helped you. Good luck and feel free to reach out to me if you have any questions on this.
IT Professional | Researcher | AI Educator | Son | Brother | Friend
3 年https://www.dhirubhai.net/pulse/from-novice-machine-learning-engineer-2-years-ikechukwu-nigel-ogbuchi/