My Journey in Code

Abhay Ubhale
Developer Students Club, VJTI
7 min readFeb 1, 2021

Why this blog?

I’m Abhay Ubhale aka Coding Abby. I’m currently pursuing B.Tech in CS at VJTI, as a second-year student. I have self-learned a lot on my journey of programming and do not want anyone to make the same mistakes I did. Hence, this blog is dedicated to everyone who dreams of becoming a good programmer.

I request that you read the entire blog in depth so that you can get the most out of it.

You may or may not be from circuit branches(CS, IT, Tronix, Trical, ExTC) but you can still have a career in the IT sector. This guide is for every newbie out there, in the chaos of “How do I start programming?”.

The beginning of my journey

Before coming to VJTI, the only knowledge about programming I had was HTML and CSS. It was taught as an optional subject in high school. Later I came to realize that HTML was not even a programming language 🥴. When I became comfortable in VJTI, the programmer in me became equally uncomfortable (peer pressure dude!), because they don’t teach you elaborate programming in First-Year except for basic C++ problem-solving. Some students were doing programming since sixth grade, and some were working on projects or with startups and whatnot. I started to feel intimidated. I felt, “When would I be coding those cool applications? I don’t even know basic logic building yet!”. Don’t worry everyone starts just like this🥺, provided you start!

The first programming language is always a personal choice. After banging my head a lot for choosing my first language, I selected C++ (waise jyada choice nahi tha). You can opt for Java, Python, or JavaScript, whatever suits you. Many beginner tutorials out there give suggestions about Python being the easiest language (because you don’t have semicolons there ;P ). That’s what makes it unsuitable to start with. The reason is, shifting from C++ or Java to Python is easy, whereas the other way round is miserable.

You can handle things that are close to the execution (or system) level in C/C++ which will push you to explore how the language works internally. Other languages come with a lot of abstraction layers for programmers to not worry about background processes.

After working with C++ for a while, I realized that the time has come to move on. It will teach you concepts like the basics of data types, loops, pointers, and then the more advanced concepts like Object-Oriented Programming (OOPs), data structures, etc. It’s absolutely fine if you didn’t get any of these right now (meine bhi net se copy Kiya tha 😂).

YouTube tutorials are the best free courses!

If you wish to be better as a programmer I highly recommend that you cover your Data Structures and Algorithms (DSA) first, before moving onto making cool projects. Learning DSA will give you knowledge on how to make efficient code, and not just code that works. This is an important skill that’s hunted by recruiters when you will try to apply for jobs.

After getting some suggestions, I started following some tutorials for Python. Whenever you would do a course (on Coursera, Udemy, etc, and obviously YouTube) just follow it till the end.

Projects or CP?

I would like to tell you some terminologies to get you familiar with, which help you understand better.

“CP stands for Competitive Programming where you compete with peers for solving problem statements using programming.”

“DSA is Data structure and Algorithms, where you structure your data and devise some algorithms on it in an efficient manner. It forms basic knowledge for problem-solving and very essential for any programmer.”

You can do CP only when you know basic Data Structures like Stacks, Queues, Graphs, etc, and some algorithms based on them. You will be asked questions on DSA in interviews or competitions so definitely focus on that.

Do not mistake proficiency in DSA with CP, if DSA is like walking and running then CP is like Hiking. You choose to learn and do hiking but walking and running is a necessary skill. If you wanna know about my projects, the link is given at the end of this blog.

The choice is yours, you can improve your programming skills with CP and/or get experienced in technologies by making projects. I think the best way to dig deep into programming is to do projects because it’s cool to build apps and websites; hence I began working on my personal blog site using Python.

There is no easy way to start, you have to give your time and efforts for such things. It took me six months of consistent effort to bring my site to its current aesthetic (the link is given at the end of this blog).

You can do multiple projects at once like me, but keep in mind that you should adjust your academics and your regular life with it. You might be working with multiple committees, doing internships, exploring new stuff constantly, and much more. That’s why the work-life balance has to be maintained.

This doesn’t mean you should completely ignore CP because it is equivalently important (for job hunts). That’s why I take part in some competitive programming challenges regularly.

Now what?

Till the end of my first semester, I got confident about some things related to programming. According to me, the best way to learn is to teach others. Hence, I occasionally upload coding related videos on my personal Youtube channel.

My drive to learn was fed by my will to teach others; the more I learned, the more I could teach. You can devise YOUR ways to learn new things.

When you will be good at basic stuff, you will have many options to explore different domains eg- Web or App Dev. You will have good knowledge of programming concepts by this time.

The short words like “Web”, “App”, “dev” refer to the prefix of their complete words. Eg, Web Dev means Website Development.

Furthermore, you will want to explore more domains, so here is a list of technologies for you (in preference order for your career, it is not necessary to know it all, do not get intimidated, take baby steps with Web Dev or App Dev and then move forward according to your interest in other domains):

  1. Web Development (HTML, CSS, JS, Node, Python)
  2. App Development
  3. Android Apps (Java, Kotlin)
  4. iOS Apps (Swift)
  5. Cross-Platform applications (Flutter(Dart), React Native, Ionic)
  6. Artificial Intelligence/Machine Learning (Python, JS, R)
  7. Data Science (Python, Matlab)
  8. Cloud Computing (Gcloud, AWS)
  9. IoT (Internet of Things) (Embedded C, micropython, ROS)
  10. Ethical Hacking (Python and hacking tools)
  11. Desktop Applications (Flutter, Electron.js)
  12. Blockchain (evolving tech)
  13. Augmented Reality and Virtual Reality
  14. Game Development (Unity, Blender, etc)

There are even more technologies but they are beyond the scope of this blog.
Repeating, this list mentions common (necessary) to more uncommon (very specific) domains in the industry. At the base level, you should at least know the full stack of either web dev or app dev.

What do I do when I get stuck?

Googling skill is as important as Programming skills

Initially, I had a million doubts and the best solution was to google my doubt. There are various sites and forums with coders helping coders. StackOverflow is at the top of the stack along with which you have Geeks for Geeks, official documentation, blogs, and many other websites for particulars.

VJTI’s seniors are the coolest seniors according to me, so I started seeking help from them. Remember one thing, feel free to contact them, they will guide you with all of your queries. Once I asked a random senior for a calculator, and then we ended up being nice friends.

We have 2 coding communities in our college. Developer Student Club (DSC VJTI) powered by Google Developers in VJTI and Community of Coders (CoC) by seniors. Both work for improving your coding skills and provide you with different opportunities from both communities’ perspectives.

You will have doubts or feel stuck even after Googling. Ask seniors, friends, or put it on coding groups of our college i.e DSC and CoC, someone will be there to help you. During YOUR journey, you will face many many problems and it will feel intimidating at times. Hence motivating yourself persistently is the key to success.

A beautiful blog written by my senior, Shreyansh Chheda about Coding is added below:
A Guide to Coding Placements

It has all the necessary resources and a complete guide to go from zero to hero in everything related to Software Engineering.

Why do I put so much effort?

After getting into this field there’s no turning back. You will be excited to learn more and more if you are truly passionate about programming. When you put your efforts into something, you either get money and/or knowledge. If you observe closely, you will spend the money at once while the knowledge you would get will be your investment. This investment has guaranteed returns and it will always be profitable(kahi se Suna tha ye😆). In the end, you will get thousands of opinions about what to do and what not to. The last opinion should always be yours! Follow it and you will never regret it!

I’ll be there for you! Contact me on codingabby.com/contact

Visit codingabby.com/projects for peaking into my other projects

If you like my opinions and this blog, please leave some applauds👏 so that I get motivated to write more.

--

--

Abhay Ubhale
Developer Students Club, VJTI

Barclays Intern 2022 | Currently pursuing Computer Engineering at Veermata Jijabai Technological Institute (VJTI)