3 Tips to Learning Programming in 2024

Kelsey H.
3 min readDec 26, 2023

--

This past month I started learning Java, adding it to Rolodex of languages I enjoy coding with in personal projects and LeetCode as I continue my self-taught journey. While studying Java, I recognized I’m not the only person seeking to add a new language to their technical skills. Here are my top tips for picking up Java (or any language or skill) going into the new year.

Understand the fundamentals.

Every language has building blocks. Building a solid foundation to start helps to build confidence which leads to more confident exploration as you dive deeper. Using Java as an example, I focused on reviewing my understanding of classes, access modifiers, and typing before embracing how object oriented programming characteristics demonstrated themselves using those blocks.

Familiarize yourself with the syntax and structure of the language you are trying to learn. I set aside time daily to complete Codecademy courses to get my feet wet. I allowed myself time to learn the principles and concepts under the hood of Java. I applied the knowledge I learned immediately into simple projects and created summaries to ensure I had reference points if I needed to refer back later as I continued into more advanced concepts.

A great help for me was having a strong understanding of JavaScript and TypeScript. JavaScript is another object-oriented programming (OOP) language and TypeScript is a superset of JavaScript, extending JavaScript to allow typing. Knowledge from both were transferable to Java because of the shared OOP characteristics (encapsulation, abstraction, inheritance, and polymorphism). What’s more is that by taking the time to review and understand within the confines of Java these fundamentals strengthened my understanding of problem-solving and critical thinking within programming overall.

Memorize less.

I come from a traditional schooling background. If you’re like me, you recall school had a way of highlighting memorization and cramming as way to confirm proficiency at a subject. Rote memorization is not as useful tool in programming as it is in subjects like History or Mathematics. The core beauty behind programming is understanding how to solve problems, find knowledge, and apply your found knowledge to the problem you’re trying to solve. It’s less about how much you can fit into your brain and more about do you know how to maximize your resources in order to solve problems.

This doesn’t mean you can’t take notes or jot down concepts you want to review. In Java, there are a lot of concepts, multi-threading, thread synchronization, program structure, etc that I took notes on to create a reference, but also as a test of understanding. If I could re-summarize concepts at a high-level, I felt confident in moving on. This is vastly different from memorization because I’m seeking at minimum a general grasp of concepts that will allow me to confidently apply what I learned to future problems.

If I don’t understand a concept, data structure, or approach in Java, it’s a great opportunity to familiarize myself with the documentation and learn how to navigate it. Approaching a new language with the intent of knowing how to research and iterating on your solution with that research is a skill I’ve been able to continue building on. Now, when I need to refer to documentation or look up additional related topics while studying, I’m not daunted by the prospect and have developed ways of getting to the result more efficiently.

Learn by DOING.

I’m sure you’ve heard this more than enough times to never forget in this lifetime, but it bears repeating. Programming is ultimately about learning by doing. It stacks with memorizing less and having at least some level of understanding of the language’s fundamentals and syntax. You gain so much more when you take what you’ve learned and you apply it to a problem.

I took what I learned about access modifiers, classes, and inheritance to build a super simple program that lets you place an order to a coffee shop. The logic was basic but it allowed me to play around program structure, which having become comfortable in a more functional approach to JavaScript, helped me to be more adept with classes, declaring and initializing variables, and thinking about the type of information I was moving around my program. You can view my java program here if you’d like.

Learning in action is more impactful. You see results quicker and you continue to build a reference of what worked and what needs to be improved upon in future projects. It’s a confidence booster, and if the project is interesting enough, a portfolio builder as well. Two birds, one stone type of deal.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Kelsey H.
Kelsey H.

Written by Kelsey H.

My three favorite things are coding, gaming, and caffeine.

No responses yet

Write a response