Reimagining My Journey: What I would do if I were to start my career again

Reimagining My Journey: What I would do if I were to start my career again

Would I Do Things Differently If I Could Reset My Career?

Hey Everyone,

Lately, I’ve been asked a similar question in various forms by many beginners. While the phrasing may differ, the core question remains constant: “What would you do differently if you were to start your career again?” So, I thought it would be a great idea to write a blog about it and share my thoughts with you.

My programming journey began when I entered university, but my motivation came from two important figures in my life - my father Mengistu Ali and my dearest friend Solomon Agizew(who is also a lecturer and happens to be my father lecturer. funny right ).

So, I’d like to dedicate this post to My Father, Mengistu Ali, and My Friend Solomon Agizew .

My story begins back when I was in the 6th grade. My father told me that I would be changing schools to attend a private school from public one, and he would cover my school fees for the year. Meanwhile, he would start his bachelor’s degree at Mizan Tepi University over the summer means he would pay my school for 10 month school time and the rest two month he will pay for his university fee. At that time, I was just a kid, and I didn’t fully grasp how significant this gesture was and the sacrifices my father made to provide for my education. Honestly he is not earning that much but he did everything he can to provide for my education.

As time passed, with its fair share of ups and downs, I reached the 12th grade. My father successfully graduated with a degree in computer science. By that point, I had developed a keen interest in computer science, and it so happened that my father’s teacher had become my dearest friend. I was thrilled about the prospect of learning from him, especially in the field of computer science.

The motivation for me to pursue a career in computer science stemmed from the influence of my father and my friend. This is where my answer to the question of whether I would do things differently in my career begins.

Disclaimer: This is my personal opinion, and it may not apply to everyone. Please consider it as just one perspective.

What would I do when I start learning programming?

Aside from my university courses, I would start with the basics of C++. You might wonder why. Understanding how C++ works at a low level will help me grasp the concepts of other programming languages. Once I have a good understanding of C++ and its syntax, I would directly dive into data structures and algorithms.

How would I learn data structures and algorithms? Many folks take it for granted in the programming community, but joining a community and learning together is the best way to keep the motivation flowing. So, I’d definitely join a community to learn alongside others.

After becoming part of the community and with a strong competitive mindset, I would take on programming challenges on different platforms. But here’s the catch - I might not go for Leetcode . The reason behind this choice is that Leetcode is generally seen as a platform for job interview preparation (not to say it’s not a good platform). At this stage, my primary goal is not job-related.

So, what kind of platform would I choose? For me, the easiest starting point would be Open Kattis , and as I become more experienced, I’d transition to CodeForce for more challenges and a competitive environment.

Let me mention some resources I would rely on to learn C++ and DSA:

I would explore many more resources available on the internet.

After dedicating at least a couple of months to this learning process, I would start working on some projects. Keep in mind that I’m not suggesting you should stop competitive programming. Also, I understand that you might have other commitments like school, but adjusting your time is possible.

For university students who believe they don’t have much time for this, I would say you have more time than you think. It’s all about time management, and you can make it work. Once you graduate, life’s demands can increase, making it harder to find time for this, so it’s wise to start now.

What Kind of Projects Would I Do?

When considering the projects I’d undertake, I’d begin with something simple, utilizing the knowledge I already have. A console application, perhaps a basic banking system or a simple calculator, would be a good starting point. Once I feel comfortable with programming, my next step would be to venture into web development.

However, it’s essential to note that this is my approach, and your goals may vary. You might be interested in mobile app development, game development, or something entirely different. Feel free to tailor your path accordingly.

I’d kick off my web development journey by learning HTML, CSS, and JavaScript from W3Schools . I particularly favor this site because it offers straightforward and easily understandable explanations. If I require more in-depth guidance, I might watch a couple of YouTube videos from Awesome Web Dev , which provides a tons of resources for learning web development.

To solidify my learning, I’d create projects, even if they seem simple. Here are some examples:

  • Building a blog site
  • Developing a to-do app
  • Crafting a weather app
  • Creating a game like Tic Tac Toe
  • And more

These apparently straightforward projects are invaluable for learning and refining your skills. After this stage, I’d decide whether to focus on frontend or backend development. Personally, I’m drawn to backend development due to my stronger interest in it.

For the backend, I’d select a programming language to kickstart the process. My choices would come down to Node.js and Python. Given my personal inclination, I’d likely opt for Python, but your preferences may differ.

One of the most common mistakes I notice among beginners is rushing into learning a framework without first mastering the underlying language. I would allocate time to comprehend the fundamental aspects of the programming language, including threading, asynchronous operations, multiprocessing, interpretation, compilation processes, and more. These are the building blocks, and neglecting them can lead to significant challenges down the road.

Once I have a solid grasp of the language, I’d move on to learning a framework. Personally, I’d choose Django, which I consider one of the best frameworks for beginners. I would rely on the official Django documentation as my primary learning resource.

In my view, Django Web framework has some of the best documentation among most frameworks available.

Now, a fundamental part of web development is having a deep understanding of each component at its core. Let’s take an example:

Instead of relying on pre-made libraries for Authentication and Authorization, try implementing them from scratch. You’ll learn a great deal from this experience. For instance, implementing Session-Based Authentication isn’t as daunting as it may seem. While some might be hesitant about tackling OAuth on their own, it often stems from not fully grasping how it works in the first place.

So, choose a project that allows you to implement these functionalities yourself. A blog site is an excellent example, as it provides an opportunity to implement Authentication, Authorization, CRUD operations, and more. Let’s mention a few project ideas that you can consider:

  • Blog Site
    • With Authentication and Authorization
    • Commenting System
    • Like System
  • Bank Wallet
    • Authentication and Authorization
    • Deposit
    • Withdraw
    • Transfer
    • Analysis
    • Monthly Report
  • E-Commerce
    • Authentication and Authorization
    • Cart
    • Checkout
    • Payment with Stripe or any other payment gateway (crypto is a plus)
    • Order Management
  • Social Media
    • Authentication and Authorization
    • Post Creation
    • Commenting
    • Liking
    • Sharing
  • Food Discovery
    • Authentication and Authorization
    • Search Functionality
    • Filtering
    • Integration with Maps
  • Stock Market
    • Authentication and Authorization
    • Time Series Data Analysis
    • Reporting with Graphs
    • Live Data Updates
    • Implementing trade placement (if interested in trading) using a Redis priority queue
    • And much more

After completing each project, if possible, I would deploy them and create detailed documentation for each one. I’d also write blog posts about these projects, sharing them on my social media accounts, and asking for feedback from my friends and colleagues.

What Would I Do After This?

The next exciting step is something many look forward to – job searching. Before diving into the job hunt, I would organize all the projects that are ready to be presented and completed. These projects would then be compiled into a portfolio.

Once my portfolio is set, I would search for either online internships or on-site internships to gain hands-on, real-world experience. This not only enhances my chances of securing a job but also boosts my confidence in working as part of a team.

In today’s job market, finding a paid job can be a bit challenging, especially considering the impact of the ongoing COVID-19 financial crisis. But it’s crucial to remember that we don’t enter this field to give up; we’re here to fight and ultimately succeed.

Advice for Beginners

I understand this blog is quite lengthy, but I hope you find it helpful. Here are some pieces of advice that I believe can make a significant difference:

  • Don’t be afraid to ask for help. You are not alone; there are numerous people willing to assist you. Don’t hesitate to seek help.

  • Avoid comparing yourself to others. Your uniqueness sets you apart. If you think someone is more knowledgeable, remember you are merely a bit behind. Refrain from unnecessary comparisons.

  • Embrace failure as a part of life. Failure is a natural aspect of our journey. Learn from your failures and move forward.

  • Pay attention to your seniors. They’ve been through what you’re experiencing now. You may not always agree with them, but you can learn valuable lessons from their experiences.

  • Compete with your friends and colleagues. Healthy competition can be a powerful motivator. Competing with peers can push you to do better.

  • Surround yourself with like-minded people who share your goals and mindset. The exchange of knowledge and ideas among such individuals can be incredibly beneficial.

  • Avoid negative influences. Negative people can drag you down; choose your company wisely.

  • Don’t fall into the “tutorial hell.” While tutorials have their place, you’ll gain more by working on actual projects.

  • Focus on one thing at a time. Trying to learn everything simultaneously can be overwhelming and may lead to frustration. Concentrate on one topic before moving on to the next.

The following advice pertains to the job-seeking process:

  • Apply promptly and respond promptly. Swift responses increase your chances of securing a job.

  • Customize your cover letter and resume for each job application. A one-size-fits-all approach doesn’t cut it; tailor your documents for each job.

  • Abandon the “spray and pray” method. Sending your resume to every job posting won’t yield results.

  • Maintain professional profiles on platforms like LinkedIn and Github, complete with a high-quality profile picture.

  • Draw inspiration from job descriptions when working on your next project.

  • Leverage your network by asking friends and colleagues to refer you to their respective companies.

  • Stay positive throughout the job search process. Remember, you will find a job; stay patient, and your persistence will pay off.

Conclusion

In conclusion my path would be like this. I would start from the basics of C++ and then move to DSA. Then i would start doing projects and learn web development. Then i would start learning a backend framework and build projects. Then i would start applying for jobs.

My biggest success is because of my friends and the community I had CSEC ASTU . I am so proud of them and thankful to have them. I want to mention some of my mentors and friends. Connect with them they are awesome. Click there names to connect with them.

and many more that i can’t mention here.

Please don’t be annoyed if i didn’t mention your name. I am so thankful for all of you.

I hope you get something out of this blog. If you have any question or feedback please let me know in the comment section below. I would love to hear from you.

As thank you for reading. See you in the next blog. Chapi Menge

comments powered by Disqus

Related Posts

Competitive Programming, How to start and Keep going

Competitive Programming, How to start and Keep going

Do you wanna know how i my programming journey started? Let’s find out

Read More
Deploy telegram bot on Vercel(Python)

Deploy telegram bot on Vercel(Python)

Looking for a way to deploy your telegram bot on Vercel?

Read More
Building Todo API Serverless application using python

Building Todo API Serverless application using python

If you are starting out with serverless and want to build a serverless application using python, then this blog post is for you.

Read More