I got to know about Crio around the start of 2020 and I was pretty excited about the way they made online courses.
I wanted to give it a try and I signed up for the free student learning program, Crio Launch.
Preliminary coding assessment
To get into this program I had to pass a coding assessment which tested my basic programming skills. Since I came from a computer science background, I had the prerequisite skills to solve the 3 problems given in the test and that's how I got selected for the program.
My first ever project in Java
The first project I dived into was QMoney. Every module in this project provided detailed product requirements to build the visual stock analyzer tool for portfolio managers.
I had no prior experience in Java and to begin with I found it fairly easy to work with given stubs for setup tasks and go through reference docs whenever I had any doubts.
As I kept going, I began learning new concepts such as making REST API calls, serialization-deserialization, unit testing, code refactoring, multithreading, and so much more.
It was very engaging to work in the shoes of a developer in a real company and the weekly sessions conducted were interactive and useful to hone my skills.
Apart from getting comfortable with Java, I learned one more important skill – the art of googling to find the right answers to solve my problems.
A practical approach to Data Structures
Right after learning the basics of Java, I moved onto a much needed skill for ALL aspiring software developers - Data structures.
In this next real world project, I built an online code editor called QCharm which taught me the basics of handling data using data structures, various String searching algorithms, and much more.
Both these projects made me feel confident in my skills and by the end of the program I was sure that I wanted to take my skills to the next level.
Choosing to pay and continue was the best decision I made
Launch+ was eye opening on a whole different scale.
Crio's unique problem solving methodology helped tighten my problem solving skills and taught me how to apply data structure concepts even in unseen situations.
Out of the 14 weeks in the program, 7 weeks were fully dedicated to problem solving techniques and Data Structure applications, which was a more in-depth extension of what I had learned earlier.
By the 8th week, I was confident about my problem solving skills and was ready to learn the next important developer skill – Object Oriented Design.
For this, I had to get past a small buildout challenge. I had to develop a project which was purely evaluated on the basis of the architecture design of a program. That is, how extensible the program was, how many new features can be added to it without replacing the old code and more such concepts on the design aspects of the application.
That buildout taught me that getting the best optimization is not important but getting the best balance between Optimised code and Readable code is most important. Especially in an organisation where we collaborate and work on projects.
Next, I went on to build a food ordering app (QEats) from scratch which put my Java basics to test. I learned a lot about REST APIs, Java Springboot, Database management, Caching, Multithreading, Scientific Debugging, and many such advanced Java concepts.
QEats had a great learning curve for me. Coming from a Python background, Java was very new to me when I started learning with QMoney and applying Java skills even further with QEats made me feel very confident as a developer.
At last, it was time for the grand finale Buildouts.
This buildouts made me a bit anxious as I had to develop a complete application from scratch.
When I started with it, I was amazed to see how all my learnings till then helped me build the application to satisfy the given requirements.
I had a great time learning these things I had never thought I would learn when I began my journey with the basics of Java.
Beyond learning skills, I enjoyed interacting with the developer community and found the forums thoroughly useful. The forum motivated to keep me going as it not only helped me understand my errors better, but I got to see many other developers struggling with similar problems and moving past with persistence.
It gave me a sense of relief to know that I am not alone and running into errors is part and parcel of becoming an independent developer.
Landing my first job
While learning, Crio helped me perfect my resume and LinkedIn profile.
In 2 weeks, Crio team reviewed my profiles, gave personalized feedback to fine-tune my resume, and helped me prepare a top-notch profile to showcase to hiring managers.
Crio also referred me to their leading hiring partners to match my skills and helped me land an interview with Blackhawk Network.
Thanks to Crio, I was well prepared and confident to talk about my projects and skills that I had gained.
Today, I am a happy Associate Software Engineer at Blackhawk.
Some tips that i would like to give to my old self with a bit of Star wars reference is "you have to unlearn to learn". I had to unlearn using Python for everything and had to learn Java, since the curriculum was mostly based on Java. Not just that, I had to unlearn a lot of my thinking perspectives so that I could learn the new and better thinking patterns. Getting better at programming is a straightforward process. Make a plan and stick to it till the very end. You'll get swayed by a lot of new technologies but remember each and every language has its own set of pros and cons. I learned Java for the program, but still I love Python and I'm working in Python. The language isn't the most important thing that a programmer can learn, it is the way how one approaches the problem and solves it.
Hope you had a good time reading my about #learnbydoing journey.