Sort
Profile photo for Assistant
Assistant

Becoming a great programmer involves a combination of education, practice, and mindset. Here are some key steps to guide you on this journey:

1. Learn the Fundamentals

  • Programming Languages: Start with one or two languages (e.g., Python, JavaScript, or Java) to grasp basic concepts such as variables, control structures, data types, and functions.
  • Computer Science Basics: Understand algorithms, data structures, operating systems, and networking principles. Online courses or textbooks can help.

2. Practice Regularly

  • Coding Challenges: Use platforms like LeetCode, HackerRank, or Codewars to solve prob

Becoming a great programmer involves a combination of education, practice, and mindset. Here are some key steps to guide you on this journey:

1. Learn the Fundamentals

  • Programming Languages: Start with one or two languages (e.g., Python, JavaScript, or Java) to grasp basic concepts such as variables, control structures, data types, and functions.
  • Computer Science Basics: Understand algorithms, data structures, operating systems, and networking principles. Online courses or textbooks can help.

2. Practice Regularly

  • Coding Challenges: Use platforms like LeetCode, HackerRank, or Codewars to solve problems and improve your skills.
  • Projects: Build personal projects to apply what you’ve learned. Consider contributing to open-source projects to gain real-world experience.

3. Understand Software Development Principles

  • Version Control: Learn Git to manage your code and collaborate with others.
  • Testing: Familiarize yourself with unit testing, integration testing, and debugging techniques.
  • Design Patterns: Learn common design patterns and best practices to write efficient and maintainable code.

4. Work on Real-World Projects

  • Internships: Gain practical experience through internships or part-time jobs.
  • Collaborate: Work with others on team projects to learn about collaboration tools and practices.

5. Stay Updated and Keep Learning

  • Follow Trends: Keep up with industry trends, new languages, frameworks, and tools.
  • Online Courses and Certifications: Platforms like Coursera, edX, or Udacity offer courses on advanced topics.

6. Engage with the Community

  • Forums and Groups: Participate in coding forums (e.g., Stack Overflow) or join local coding meetups and hackathons.
  • Mentorship: Seek mentorship from experienced programmers who can provide guidance and feedback.

7. Develop Problem-Solving Skills

  • Critical Thinking: Work on improving your critical thinking and problem-solving skills, as these are essential for programming.
  • Practice Algorithms: Focus on understanding and implementing various algorithms, as they are foundational to programming.

8. Cultivate a Growth Mindset

  • Embrace Failure: View challenges and failures as opportunities to learn and grow.
  • Be Curious: Always ask questions and seek to understand why things work the way they do.

9. Build a Portfolio

  • Showcase Your Work: Create a portfolio of your projects to demonstrate your skills to potential employers.

10. Specialize or Diversify

  • Choose a Path: Decide whether to specialize in a specific area (e.g., web development, data science, game development) or to have a broad skill set.

By following these steps and maintaining a consistent practice routine, you can develop your programming skills and become a great programmer over time.

Profile photo for Kaira Yadav

Becoming a proficient software developer entails several critical components.

Let's investigate these elements through short points:

  1. Continuous learning.
  2. Practice coding.
  3. Seeking feedback.
  4. Collaboration.
  5. Problem-solving.
  6. Create a portfolio.
  7. Curiosity and Exploration.
  8. Communication skills.
  9. Testing and Debugging.
  10. Adaptability.

To help you on your quest, look into courses on Pluralsight or edX.

Pluralsight is an online learning platform that provides a variety of courses, including "Software Development" and "Cloud Computing."

  • It provides detailed, expert-led content to help you improve your skills.
  • Its hands-o

Becoming a proficient software developer entails several critical components.

Let's investigate these elements through short points:

  1. Continuous learning.
  2. Practice coding.
  3. Seeking feedback.
  4. Collaboration.
  5. Problem-solving.
  6. Create a portfolio.
  7. Curiosity and Exploration.
  8. Communication skills.
  9. Testing and Debugging.
  10. Adaptability.

To help you on your quest, look into courses on Pluralsight or edX.

Pluralsight is an online learning platform that provides a variety of courses, including "Software Development" and "Cloud Computing."

  • It provides detailed, expert-led content to help you improve your skills.
  • Its hands-on methodology and tests ensure the practical application of knowledge, making it an invaluable resource for software engineers looking to stay current in a quickly changing technological field.

Learnbay is a popular educational portal that offers complete coding bootcamps and courses. Courses such as the "Software Developer Certification Program" emphasize practical skills and provide a comprehensive understanding of development processes.

  • Its emphasis on capstone simulated project-based learning provides students with real-world exposure through project innovation laboratories, making it an excellent choice for anyone looking for practical experience in software development.

Furthermore, platforms like LeetCode and HackerRank provide challenges for improving your coding and problem-solving abilities.

  • LeetCode is a popular tool for developing coding and algorithmic skills.

LeetCode provides a wide range of problems, allowing users to practice and improve their problem-solving talents. Whether preparing for technical interviews or looking to reinforce coding principles, its diversified problem sets cater to developers of all ability levels.

  • HackerRank is a skill-based website that organizes coding challenges and tournaments.

Courses like "10 Days of JavaScript" appeal to various programming languages and disciplines. HackerRank's innovative approach, which incorporates gamified coding challenges and interview preparation kits, makes it an exciting platform for developers wishing to improve their coding abilities and prepare for technical interviews.

Engaging with the developer community on Stack Overflow and contributing to open-source projects on GitHub can help you improve your collaboration skills.

  • Stack Overflow is a community-driven Q&A platform where developers can learn and share information.

With a large user community, it's a valuable resource for troubleshooting code bugs and learning about best practices. From language-specific questions to more comprehensive software development subjects, it promotes global developer collaboration and information exchange.

  • GitHub is a top platform for version control and collaborative software development.

GitHub also functions as a project repository in addition to its version control functionality. Developers can display their work, participate in open-source projects, and communicate effortlessly. It is critical to the developer community because it enables efficient code exchange, collaboration, and project management.

By incorporating these pointers and exploiting these platforms, you will not only improve your technical skills. Still, you will also establish yourself as a valued contributor in the ever-changing area of software development.

Thank You!

Profile photo for Clayton Thomas

Like many of you reading this, I’ve been looking for ways to earn money online in addition to my part-time job. But you know how it is – the internet is full of scams and shady-grady stuff, so I spent weeks trying to find something legit. And I finally did!

Freecash surprised me in all the right ways. I’ve earned over $1,350 in one month without ‘living’ on the platform. I was skeptical right up until the moment I cashed out to my PayPal.

What is Freecash all about?

Basically, it’s a platform that pays you for testing apps and games and completing surveys. This helps developers improve their appl

Like many of you reading this, I’ve been looking for ways to earn money online in addition to my part-time job. But you know how it is – the internet is full of scams and shady-grady stuff, so I spent weeks trying to find something legit. And I finally did!

Freecash surprised me in all the right ways. I’ve earned over $1,350 in one month without ‘living’ on the platform. I was skeptical right up until the moment I cashed out to my PayPal.

What is Freecash all about?

Basically, it’s a platform that pays you for testing apps and games and completing surveys. This helps developers improve their applications while you make some money.

  • You can earn by downloading apps, testing games, or completing surveys. I love playing games, so that’s where most of my earnings came from (oh, and my favorites were Warpath, Wild Fish, and Domino Dreams).
  • There’s a variety of offers (usually, the higher-paying ones take more time).
  • Some games can pay up to $1,000 for completing a task, but these typically require more hours to finish.
  • On average, you can easily earn $30-60/day.
  • You pick your options — you’re free to choose whatever apps, games, and surveys you like.

Of course, it’s not like you can spend 5 minutes a day and become a millionaire. But you can build a stable income in reasonable time, especially if you turn it into a daily habit.

Why did I like Freecash?

  • It’s easy. I mean it. You don’t have to do anything complicated. All you need is to follow the task and have some free time to spend on it. For some reason, I especially enjoyed the game Domino Dreams. My initial goal was to complete chapter 10 to get my first $30, but I couldn’t stop playing and ended up completing chapter 15. It was lots of fun and also free money: $400 from that game alone.
  • No experience needed. Even if you’ve never done any ‘testing’ before, you can do this. You get straightforward task descriptions, so it’s impossible to go wrong. A task you might expect is something like: Download this game and complete all challenges in 14 days.
  • You can do it from anywhere. I was earning money while taking the bus, chilling on the couch, and during my breaks.
  • Fast cashing out. I had my earnings in my PayPal account in less than 1 day. I’m not sure how long it takes for other withdrawal methods (crypto, gift cards, etc.), but it should be fast as well.
  • You can earn a lot if you’re consistent. I’ve literally seen users in the Leaderboard making $3,000 in just one month. Of course, to get there, you need time, but making a couple of hundred dollars is really easy and relatively fast for anyone.

Don’t miss these PRO tips to earn more:

I feel like most users don’t know about these additional ways to make more money with Freecash:

  • Free promo codes: You can follow Freecash on social media to get weekly promo codes for free coins, which you can later exchange for money.
  • Daily rewards and bonuses: If you use the platform daily, you’ll get additional bonuses that help you earn more.
  • In-app purchases to speed up processes: While playing, you can buy items to help speed up task completion. It’s optional, but it really saved me time, and I earned 4x more than I spent.
  • Choose the highest-paying offers: Check New Offers and Featured Offers to get the best opportunities that pay the most.

Honestly, I still can’t believe I was able to earn this much so easily. And I’ve actually enjoyed the whole process. So, if you’re looking for some truly legit ways to earn money online, Freecash is a very good option.

Profile photo for Jade Rose

What is a good way to become a good software developer?

There are multiple ways to become a software developer. Thanks to the internet era, now anyone can access any type of course from anywhere. There are certain qualities that distinguish an average software developer from a good software developer, before diving into the paths to becoming a software developer let us see those qualities. By knowing these qualities one can choose the path to becoming a good software developer wisely.

  • Having technical expertise in the tools and technical aspects of software development.
  • Prioritizing satisfaction

What is a good way to become a good software developer?

There are multiple ways to become a software developer. Thanks to the internet era, now anyone can access any type of course from anywhere. There are certain qualities that distinguish an average software developer from a good software developer, before diving into the paths to becoming a software developer let us see those qualities. By knowing these qualities one can choose the path to becoming a good software developer wisely.

  • Having technical expertise in the tools and technical aspects of software development.
  • Prioritizing satisfaction of clients' needs over the developer's own thoughts and ideas for websites.
  • Being a good team player now is one of the important qualities that should be mastered in order to become good at software development.
  • Specialization and adaptation to new technologies and tools. This helps software developers to avoid becoming obsolete at their work. Knowing how to work on both front-end and back-end will be great quality for a software developer.

Let us see some of the best ways one can become a good software developer who possesses the above-mentioned qualities. It is advisable to go forward with full-stack software development rather than partial development technology.

  • Books: Whatever may change but the source of knowledge that one can gain from books will not change. Books are an effective way to know and learn things that are explained by experts. Books have always been a stepping stone for the learner’s learning curve. Let us see some of the best books on full-stack software development.
    • Modern Full-Stack Development Using TypeScript, React, Node.js, Webpack, and Docker by Frank Zammetti.
    • Full-Stack Serverless Modern Application Development with React, AWS, and GraphQL by Nader Dabit.
    • Hands-On Full-Stack Development with Spring Boot 2 and React by Juha Hinkula.
  • MOOC & Youtube Tutorials: MOOCs and youtube make education more accessible to everyone who has internet access and smart devices. There are various youtube channels and MOOCs that offer courses on Full-Stack Software Development.
    • edX
    • freeCodeCamp
  • Online courses: Online courses are the most preferred path to learning for both beginners and working professionals. Online courses make collaboration with renowned institutes and companies to produce courses that have an excellent industry-accredited curriculum to teach their learners.

Simplilearn offers a Full-Stack Java Developer Master’s Program.

Features:

  • Students will be offered four industry projects that are real-time. These projects are handpicked by faculties from various domains. Projects are offered in the following domains as E-Commerce, Food Delivery, Entertainment, and Healthcare services.
  • The students will receive a course completion certificate from Simplilearn itself.
  • Simplilearn offers students access to the job portal. This job portal notifies students of new job notifications.

However, they do not offer any domain specialization and comprehensive job assistance to their students.

This institute offers a Full-Stack Software Development Program.

Features:

  • Students will get to work on 12+ real-time projects from a manifold of domains. These projects are crafted and designed by experts to give more exposure to the students on how real-world projects work. The following are some of the projects they offer Crud, an Online code editor application, and Payment Gateway integration.
  • They offer elite domain specialization to their students. These domains act as leverage for the students. This feature makes the learners stand out from the crowd in the interview process. The following are the domains they offer Web 3.0, Web Development, Project Management, and DevOps & Clouds.
  • The students will receive comprehensive placement assistance that includes guaranteed interview calls, career guidance, mock interviews, profile optimization, and more.
  • The students will receive an IBM course completion certificate, which will certainly add value to their career growth.

Final note:

Now, you know these are some of the best ways to learn and become a good software developer. To satisfy all the skills that are required to become a good software developer, you go forward with online courses. Online courses provide outstanding sources to learn compared to others. Among them, Learnbay offers an excellent course. You can go forward with Learnbay to become a good software developer.

I hope this helps!

Thank you for reading!

Profile photo for Vaanya

Becoming a proficient software developer requires a combination of dedication, continuous learning, and practical experience.

  • To start, focus on mastering the fundamentals of programming languages such as Python, Java, or JavaScript.
  • Understanding data structures, algorithms, and object-oriented programming principles forms the cornerstone of software development proficiency.
  • To enhance your skills, consider enrolling in online courses offered by reputable platforms like Learnbay, Edx, Intellipaat, and Pluralsight.

Courses such as "HarvardX: Introduction to Software with Python" on Edx, "Software

Becoming a proficient software developer requires a combination of dedication, continuous learning, and practical experience.

  • To start, focus on mastering the fundamentals of programming languages such as Python, Java, or JavaScript.
  • Understanding data structures, algorithms, and object-oriented programming principles forms the cornerstone of software development proficiency.
  • To enhance your skills, consider enrolling in online courses offered by reputable platforms like Learnbay, Edx, Intellipaat, and Pluralsight.

Courses such as "HarvardX: Introduction to Software with Python" on Edx, "Software Development Certification Program" on Learnbay, "Python Software Course" on Intellipaat, and "Software Development: The Big Picture" on Pluralsight can provide structured learning paths and hands-on exercises to solidify your understanding.

  • Additionally, actively engage in coding challenges, participate in open-source projects, and collaborate with fellow developers to gain practical experience and exposure to real-world scenarios. Leveraging resources like GitHub for version control and code collaboration can significantly boost your proficiency and visibility within the developer community.
  • Continuous learning and staying updated with the latest technologies, frameworks, and best practices are crucial in the dynamic field of software development. Explore advanced topics such as web development, cloud computing, machine learning, and cybersecurity to broaden your skill set and remain competitive in the industry.

Above all, cultivate a growth mindset, embrace challenges, and never hesitate to seek guidance from experienced developers or online communities when encountering obstacles. Consistent practice, persistence, and a passion for problem-solving will ultimately pave the way toward becoming a proficient software developer.

Thank you

Profile photo for Russell McCabe

From the top:

I’ll give you some advice that I would, under other circumstances, be charging you good money to learn. I remember what it’s like to be starting out in the field and it seemed to be a great waste land at the time.

  1. You have to always be learning about new things and new ways of thinking about how to solve a problem. You DON’T give up on figuring out how to do something — but you also learn when to admit to yourself that you just don’t know how and when a piece of work has you stumped, and you’re not sure why. This is when you learn WHEN to go for help. Cutting and pasting code is no

From the top:

I’ll give you some advice that I would, under other circumstances, be charging you good money to learn. I remember what it’s like to be starting out in the field and it seemed to be a great waste land at the time.

  1. You have to always be learning about new things and new ways of thinking about how to solve a problem. You DON’T give up on figuring out how to do something — but you also learn when to admit to yourself that you just don’t know how and when a piece of work has you stumped, and you’re not sure why. This is when you learn WHEN to go for help. Cutting and pasting code is not a good idea, since you are not always going to be sure if key boundary conditions for the correctness of that code will be met.
  2. Learn when someone else’s code you read is actually GOOD CODE — and when to stop reading that code.
  3. Document the code that you write. You may be having to maintain it — and it could be months or years since you last saw it. If someone else is maintaining it, you owe it to yourself and that person to make things easy to understand and, if necessary, change that code.
  4. Prove that code correct. If you can do THAT, it’s usually a good sign that you are doing a good job.
Profile photo for Mark Bradley

As a self-proclaimed financial enthusiast, I've spent countless hours discussing money habits with people.

These are the most common mistakes people make and how to correct them:

Not having a high-yield savings account

Having a separate high interest savings account helps you visibly track your progress and keeps your funds segregated, reducing the temptation to spend. With interest rates exceeding 5.00%, the potential earnings compared to typical banks can be significant.

Check out this list of the top savings accounts available today. Deposit $5 before scrolling down further because this is one

As a self-proclaimed financial enthusiast, I've spent countless hours discussing money habits with people.

These are the most common mistakes people make and how to correct them:

Not having a high-yield savings account

Having a separate high interest savings account helps you visibly track your progress and keeps your funds segregated, reducing the temptation to spend. With interest rates exceeding 5.00%, the potential earnings compared to typical banks can be significant.

Check out this list of the top savings accounts available today. Deposit $5 before scrolling down further because this is one of the easiest mistakes to fix.

Paying too much for car insurance

The average American overspends by $417 annually on car insurance. If you've been loyal to the same insurer for years, you might be overpaying.

Go to Coverage.com, a free site that compares prices for you. Answer the questions, and you'll see how much you could save. Here’s the link to try it out.

Constantly being in debt

If you have $10K+ in debt (credit cards, medical bills, etc.), a debt relief service could help reduce that by over 20%. To see if you qualify, go to this debt relief comparison website and answer a few questions. Chances are, you'll end up paying less than you owe by taking advantage of these services.

Missing out on free investment money

It's no secret that the wealthy love to invest, but it can feel unattainable for the rest of us. Fortunately, there are several investment platforms that offer the same services that millionaires get and they're giving out bonuses for opening accounts starting with as little as $25. Some people are getting $1,000 in bonuses.

Pretty amazing right? Here is a link to some of the best options.

Having poor credit

A low credit score can negatively impact many aspects of your life, from rental applications to loan approvals. The good news is that you can improve it.

Go to Bankrate.com and see if you qualify by taking a short quiz here. It takes only a few minutes and can prevent significant issues in the future.

How to get started with everything

Hope this helps! Here are the links to get started:

Open a high interest savings account
Stop overpaying for car insurance
Finally get out of debt
Start investing with a free bonus
Fix your credit

Profile photo for Sachin More

Its going to be quite long post , please do read till end with patience.

Get good at Googling:There are many ways to effectively google things. If you're dealing with an error message, try pasting all of part of the error message into Google. Someone has almost always had the same problem. If you're stuck on a concept and aren't sure what to search for, try searching for a handful of keywords in no

Its going to be quite long post , please do read till end with patience.

Get good at Googling:There are many ways to effectively google things. If you're dealing with an error message, try pasting all of part of the error message into Google. Someone has almost always had the same problem. If you're stuck on a concept and aren't sure what to search for, try searching for a handful of keywords in no particular order, like "rails active model serializers as json nested includes data structure". You'd be surprised how effective this is.

Be nice to your designers; they're your friends:Try to match designers source files as much as possible. Pay close attention to margin, padding, font size, line height, and color. Like, really close attention. Measure, don't guess. You'll earn a ton of respect from designers simply by matching their work. Designers love working with programmers who can effectively translate their work into the real thing. Designers don't like to keep asking you to fix font sizes that are off by one pixel because you got it "close enough" instead of getting the exact number from the design file.

Kill your darlings:Just because you write some code doesn't mean you need to be emotionally attached to it. Nobody likes their work being thrown out, but code has a life cycle, so there's no need to be territorial about it.

Delete unused code:This is an important one for beginners and could use a "why". It may not seem like a big deal to leave an unused function or variable sitting around here and there, but over time these add up and you could end up with 100s of lines of code that you don't use. And it's not just extra code, it's a potential source of confusion. If someone is refactoring code later, or a new developer joins the project, they may end up spending time updating code that isn't even used anymore. Also, "in case we need it again later" isn't a good excuse — that's why tools like git are super helpful. As long as your work is checked into git you can go back as far as you need to get code that was removed.

GitHub -This isn't something which comes natural to everyone but you can still grow this mentality. I always go to GitHub to look at various cool projects people are doing. This helps me learn new technologies and motivate me to create something of my own.I don't do coding for my 9-5 job but We all should try to get inspired from each other and grow. Learn how to read git commits. It's really good to understand what you are merging. It's a really good tool to catch a lot of the mentioned points with keeping your code clean. Github gives a nice oversight but it took me a while to learn to read it.

Be Creative - It’s the same problem that bartenders face when they get asked to "make something thats good", or for the tattoo artist "i dont know, something that looks awesome". When making music, I’ve recently started to constrain myself beforehand, like; ‘make a track, but it needs to use melody for this and this song, and it needs to be this and this genre, and so on. For programming however, I find it best to create something that already exist, lay out the architecture beforehand, and then implement. Within these confinements, you will find room for creativity. Be present in the early discussions.Involve yourself in the creative process.Creativity is learned like any other skill; through hands-on experience, process, and most importantly exposure.Creativity is not born, is worked, which is just like math, you are not born with it fully learned, you just learn it. Others will learn it easier or harder, but with some work and not giving up, this will have it.

Develop good habits:Keep a development journal! Every day write down what you did and take note of any weird issues you had to solve. And if you have to discuss what you worked on in meetings it also makes you sound like you know what you're talking about.Similarly, especially when working on a large team, get into the habit of writing good changelogs for your pull requests.

Review your own code:Please do this. I've had junior devs request code review and then push a dozen "cleanup" commits after the fact. Mistakes happen & learning experiences are great; but it's frustrating to review sloppy work.

Be inclusive, everyone has value :As a beginning coder, the "be inclusive, everyone has value" really hits home. its more that it's frustrating and annoying to work with weak developers.Its s not fun when your boss hires some incompetent person who clearly has no aptitude and/or lacks critical basic knowledge and you get to become their babysitter/teacher/mentor, watch them sink while you take up the slack and waste your time trying to fix their issues, or you have to be the bad guy and recommend they be fired.

Weak developers :I don't think there is room for everyone. You need to have skills otherwise I don't see why you should be getting paid if you bring nothing to the table (or worse, if you're a distraction to people who actually get stuff done).Weak developers are people who don't understand computer science or even if they ostensibly understand a concept, they aren't able to apply it appropriately without being told. People who either lack an education or they lack the ability to educate themselves. People who just lack aptitude, the kind who, when they have a decision to make, usually make the worst one and don't have any explanation for why they did so, and aren't able to follow your logic when you explain why it's wrong.

Honor your commitments - If you tell someone you'll deliver something by a certain date, honor that commitment. And if you can no...

Profile photo for Quora User

How do you become a great programmer?

There are two sides to it - first is the creative side, which comes from within, though you can learn a great deal following others and getting inspirations from whats already there. But the real creative inspirations come from within. For example - Steve Jobs, he wasn't an engineer, nor a programmer but he was creative. So he drove the Apple to create beautiful programs resulting in beautiful things (iOS, Siri).

Whats creativity have to do with programming ? Everything, if you want to be counted as great programmer. Anyone can go out there, take some course

How do you become a great programmer?

There are two sides to it - first is the creative side, which comes from within, though you can learn a great deal following others and getting inspirations from whats already there. But the real creative inspirations come from within. For example - Steve Jobs, he wasn't an engineer, nor a programmer but he was creative. So he drove the Apple to create beautiful programs resulting in beautiful things (iOS, Siri).

Whats creativity have to do with programming ? Everything, if you want to be counted as great programmer. Anyone can go out there, take some courses online or offline, read some books and start coding. But that's what is taught to you. You need to be creative to come up with your own framework, create something amazing. For example Dennis Ritchie (Dennis Ritchie), who got creative writing C programming language (C (programming language)), the most widely used language of all time.

Its like any spoken language, everybody knows some language, but not everyone is a poet or a writer. You need creative skills to be called a great poet or writer.

Second is the technical side. You need to start with some programming language. Many people in olden days started coding in assembly, or C. Then many of started with BASIC. Nowadays people start with Python or PHP. It doesn't matter. Once you grasp the concepts, can write algorithms and draw flow charts, you have a good start. You pick a language and go on with it.

For a year or so, you write variety of code - learning from making mistakes and being creative. Later you pick another language and its comes easy to you, since you have mastered the basics. About 3-4 years later you have now gone thru at least 3-4 languages and then you find your calling. That's when you write your best code, something useful, something creative, something innovative, inspiring, that leads the way for others. You need to put in at least few years into core programming, and work on at least 4-5 good product based projects.

Modern computer languages are easy to learn and master. Compare this to the days when it was either Assembly or C. But even now, there is no shortcut to creativity which is required to create something inspiring.

Does your code has to be commercially successful for you to be called a great programmer. I don't think so. But it has to be inspire something good. For example - C language was inspiring, Unix was inspirational. It lead the way.

Bill gates wrote the BASIC interpreter for Altair 8800 back in 1975 and it led the way for founding of Micro-soft (read more here - Bill Gates). I consider Bill Gates a great programmer, because what he was able to do, inspired the launch of PC era.

Programming is both science and art. And to become a great programmer you need to become master at both.

Profile photo for Johnny M

I once met a man who drove a modest Toyota Corolla, wore beat-up sneakers, and looked like he’d lived the same way for decades. But what really caught my attention was when he casually mentioned he was retired at 45 with more money than he could ever spend. I couldn’t help but ask, “How did you do it?”

He smiled and said, “The secret to saving money is knowing where to look for the waste—and car insurance is one of the easiest places to start.”

He then walked me through a few strategies that I’d never thought of before. Here’s what I learned:

1. Make insurance companies fight for your business

Mos

I once met a man who drove a modest Toyota Corolla, wore beat-up sneakers, and looked like he’d lived the same way for decades. But what really caught my attention was when he casually mentioned he was retired at 45 with more money than he could ever spend. I couldn’t help but ask, “How did you do it?”

He smiled and said, “The secret to saving money is knowing where to look for the waste—and car insurance is one of the easiest places to start.”

He then walked me through a few strategies that I’d never thought of before. Here’s what I learned:

1. Make insurance companies fight for your business

Most people just stick with the same insurer year after year, but that’s what the companies are counting on. This guy used tools like Coverage.com to compare rates every time his policy came up for renewal. It only took him a few minutes, and he said he’d saved hundreds each year by letting insurers compete for his business.

Click here to try Coverage.com and see how much you could save today.

2. Take advantage of safe driver programs

He mentioned that some companies reward good drivers with significant discounts. By signing up for a program that tracked his driving habits for just a month, he qualified for a lower rate. “It’s like a test where you already know the answers,” he joked.

You can find a list of insurance companies offering safe driver discounts here and start saving on your next policy.

3. Bundle your policies

He bundled his auto insurance with his home insurance and saved big. “Most companies will give you a discount if you combine your policies with them. It’s easy money,” he explained. If you haven’t bundled yet, ask your insurer what discounts they offer—or look for new ones that do.

4. Drop coverage you don’t need

He also emphasized reassessing coverage every year. If your car isn’t worth much anymore, it might be time to drop collision or comprehensive coverage. “You shouldn’t be paying more to insure the car than it’s worth,” he said.

5. Look for hidden fees or overpriced add-ons

One of his final tips was to avoid extras like roadside assistance, which can often be purchased elsewhere for less. “It’s those little fees you don’t think about that add up,” he warned.

The Secret? Stop Overpaying

The real “secret” isn’t about cutting corners—it’s about being proactive. Car insurance companies are counting on you to stay complacent, but with tools like Coverage.com and a little effort, you can make sure you’re only paying for what you need—and saving hundreds in the process.

If you’re ready to start saving, take a moment to:

Saving money on auto insurance doesn’t have to be complicated—you just have to know where to look. If you'd like to support my work, feel free to use the links in this post—they help me continue creating valuable content.

Profile photo for Mike Ciaraldi

Here’s how I did it (and, yes, I consider myself pretty awesome at designing and implementing software systems. Not Linus Torvalds or Richard Stallman awesome, but not too shabby :-) ):

  • Lots of practice. This is like the way that years of practice puts you in the state where you do not have to think about each individual finger position while playing a musical instrument. Once you know what you want a piece of code to do, the code just seems to flow out of your fingertips onto the keyboard.
  • Learn about different programming languages, different kinds of languages, and different operating systems

Here’s how I did it (and, yes, I consider myself pretty awesome at designing and implementing software systems. Not Linus Torvalds or Richard Stallman awesome, but not too shabby :-) ):

  • Lots of practice. This is like the way that years of practice puts you in the state where you do not have to think about each individual finger position while playing a musical instrument. Once you know what you want a piece of code to do, the code just seems to flow out of your fingertips onto the keyboard.
  • Learn about different programming languages, different kinds of languages, and different operating systems. Each causes you to look at a problem and its solution in a different way. This will help you choose the best tools for each project.
  • Study the foundations of computer science: how hardware works, how a compiler does its job, how different algorithms work. Learn how to analyze an algorithm in terms of how much time, memory, and I/O access it will require, as a function of the size of the problem; this may tell you if your approach is even practical. Do you know what “NP Complete” means? You should.
  • Remember that you should not be just a “coder.” You design and implement a complete system or part of a system. Often, proper design is more important than the program itself.
  • Understand the importance of proper documentation. This is probably the single most important thing which beginners do not realize. If you do not know what the program is supposed to accomplish and how it is supposed to work, how will you ever write it correctly? And if you do not write that down, how will you or anyone else know in the future?
  • Think before you code! Decide what you want a function to do, write a header comment for it, and only then write the code to implement it. If you realize that this is not what is needed, update the comment.
  • Despite what I just wrote, do not be afraid to write a quick-and-dirty program that you will throw away. This is especially true if you are trying to figure out how a particular language feature or function works.
  • Learn to use tools such as Doxygen, Valgrind, and a debugger.
  • Learn to analyze systems: What is the problem being solved? How does it need to interact with other mechanical, computerized, and human systems? Sometimes you have to tell a client: “You are trying to solve the wrong problem.”
  • Read books and journals. Join a professional society such as ACM or IEEE-CS, and attend their meetings and workshops.
Profile photo for Matthew Chaboud

Naturally, when we see a question like this, we see lots of answers like:

"Always be writing code!", "Learn to learn!", and "I started on a Babbage Difference Engine that I built from marbles and gum-drops, so you should do the same!"

Sure. Great. These are fine things, and a lot can be had early on from banging on, noodling with, and tackling problems on your own. Still, I'm going to suggest that you do two things to try to become a great coder:

  1. Stop writing code for yourself.
  2. Stop writing code.


1. Stop writing code for yourself.
The greats don't just solve coding problems. The greats creat

Naturally, when we see a question like this, we see lots of answers like:

"Always be writing code!", "Learn to learn!", and "I started on a Babbage Difference Engine that I built from marbles and gum-drops, so you should do the same!"

Sure. Great. These are fine things, and a lot can be had early on from banging on, noodling with, and tackling problems on your own. Still, I'm going to suggest that you do two things to try to become a great coder:

  1. Stop writing code for yourself.
  2. Stop writing code.


1. Stop writing code for yourself.
The greats don't just solve coding problems. The greats create tools that others can leverage to solve problems. Whether those downstream of you are in your organization or not doesn't really matter. What matters is that your code is readable, comprehensible, usable, extensible, compatible, ableible, ibleable, etc.

Middling and good programmers can create APIs, components, and frameworks that other teams can interact with on an ongoing basis, but it will typically take coordination, modification, and collaboration. Great programmers can build APIs and components, drop the mic/keyboard, walk away, and still have an impact.

Think of what a good API looks like. Interfaces self-document, allocation and resource retention semantics are coherent, threading concerns are cleanly managed and consistently expressed, etc.

What about components? Capabilities scale cleanly, integration burdens drop, interfaces allow for natural extension, problems that the component author never dreamed of can be solved concisely, etc.

Even if you're never going to share the code, write for others. Write virtuoso code. In a year, when you pull this code out of your bag of tricks to solve some other problem, it will be there, waiting for you, with a bow on it. When I was young, energetic, and writing code only for myself, I would express "false" with "5 == 3" or name all of my variables after farm animals. Needless to say, I don't do that anymore.

When all of this is done right, one coder suddenly becomes tens, hundreds, or thousands of coders in downstream efficiencies. The leveraged impact of direct application of the code is one part, but the reflections of that code in the work of others has a meaningful (though indirect) impact. Which brings me to the larger point:

2. Stop writing code.
This may seem a little counter-intuitive, but stay with me for a minute. In order to write well, we generally need to read quickly, effectively, and thoroughly. The overwhelming majority of what we do is read code. I just spent a couple of weeks reading code so I could take what was expected (by others) to be a few thousand lines of hard-to-maintain code and turn it into about 25 lines of
the right (ask me again in six months) code. When you're working in mature codebases, being able to make progress on large-scale bodies of code without introducing technical debt means being able to deeply understand what is in front of you. Wrapping your head around the whole problem in an existing codebase means reading the code in the codebase. It means that you can, for example, look at a thread-safe data structure and understand if it is lock-free, wait-free, or utterly broken. Part of this comes down to you and your fellow coders writing readable code for others (See 1.), but much of it comes down to your ability to ingest and internalize code. You do this by reading code, and you get good at reading code by reading code.

Additionally, reading is your gateway to the party tricks (and substantive methodologies) of others. When you encounter an elegant API, a clever construct, or a complete solution to a complex problem, read the code. When you find a broken hack, a set of classes painted into a corner, or an incomprehensibly complicated stack of band-aids, read the code. You'll learn about good approaches and horrible pitfalls. You'll see a little more through the eyes of the author(s), develop some sympathy for the situational choices involved, and reach beyond your own edges. When you never stop writing, you can fall into the old adage of having a hammer... every problem looks like a nail. You can get very far with a limited toolbox and a lot of effort, but you'll never be great.

I once had a very senior engineer (and mentor... and friend) at a previous company tell me that I was the best "mathematician who codes" that he knew. He is the best reader of code I've ever met, and he was leaps and bounds more valuable to the organization than I was. The most influential programmers I've worked with have all been voracious readers of code, capable of reading code like others read the morning paper.

If you want to be a great coder, you need to stop writing code long enough to start reading it.

Airlines hate when you do this (but can't stop you).
Profile photo for Martin Ingram

TL;DR = realise that coding is often the least important skill that you need to develop.

Great “programmers” solve problems using software, delivering solutions that also take into account non-functional requirements such as robustness, reliability, maintainability, performance and security. The most important aspect however is that they solve the right problem.

To do that you actually need to be a good software engineer. You need a holistic understanding of the problem space and the wider domain.

Much of this requires good skills over and beyond being good at writing code, particularly soft skil

TL;DR = realise that coding is often the least important skill that you need to develop.

Great “programmers” solve problems using software, delivering solutions that also take into account non-functional requirements such as robustness, reliability, maintainability, performance and security. The most important aspect however is that they solve the right problem.

To do that you actually need to be a good software engineer. You need a holistic understanding of the problem space and the wider domain.

Much of this requires good skills over and beyond being good at writing code, particularly soft skills that allow you to communicate clearly with your stakeholders, many of whom will be non-technical, and also the other specialists in your team.

Indeed, much of the time if you get everything else right, you won’t need to write clever code, so in a sense your coding chops become less relevant.

I’ve met many clever people who were very good at writing code, but were absolutely useless at delivering solutions because they misunderstood both the problem and therefore what was actually required.

Don’t be one of these people.

Profile photo for Dun Kumari

To become a better programmer, you must master data structures, algorithms, OOP design, multithreading, and numerous programming ideas like recursion, divide and conquer, prototyping, and unit testing. Since programming requires various skills, it cannot be learned quickly; rather, it must be acquired via practice and patience, but not automatically.
Programmers do not often use these crucial programming skills. I suspect the average programmer would have performed far better if a required programming test for problem-solving existed. I've compiled a list of resources to make you a better code

To become a better programmer, you must master data structures, algorithms, OOP design, multithreading, and numerous programming ideas like recursion, divide and conquer, prototyping, and unit testing. Since programming requires various skills, it cannot be learned quickly; rather, it must be acquired via practice and patience, but not automatically.
Programmers do not often use these crucial programming skills. I suspect the average programmer would have performed far better if a required programming test for problem-solving existed. I've compiled a list of resources to make you a better coder.
1. Coding and more coding
Why did I rank coding first on this list? Because it is both the most challenging and an essential component of its programming. By writing code, you become aware of your design flaws, handling errors, and threading, and you can revisit those areas to improve. You can't only work in design; coding creates output, which is necessary to understand and do well. By the way, don't stop after finding the solution; it's usually best to discard your initial effort since it was only a prototype. Your next effort should address any problems or unmet needs you discovered while creating the prototype.
2. Reading Textbooks
There is a huge difference between excellent and terrible code, but how can you know? Coding is easier said than done. You can't tell the difference until you've seen a good code and understand why it's good. Books can be useful in this situation because most authors are also excellent programmers. They publish a book in which they share their experience. I adore reading books, but Uncle Bob's Clean Code has benefited me.
3. Solving challenges involving data structures, algorithms, and system design
That was originally the second item, but it was the third. The majority of competent programmers I've seen and spoken to are quite proficient in data structures, algorithms, and computer science fundamentals.
You can make better use of the resources available by studying these topics. A strong understanding of data structures is helpful when solving problems because they are an essential component of any program. Similarly, developing your programming skills requires knowledge of fundamental programming concepts, search and sorting algorithms, and other well-known algorithms.
4. open-source involvement
Another technique to develop your programming abilities and become a better programmer is contributing to open-source code, particularly from Apache, Google, and other projects. You can learn much by joining their email list and reading the following discussion.
5. Reviewing quality blogs
A minor portion of reading books is reading good blogs. How can reading blogs improve your programming skills? It does. You frequently find blogs relevant because programmers frequently write them, and most of them express their personal opinions and experiences.
Additionally, blogs are concise pieces of information that are easy to process. A blog can also be used to discover new technologies and API and language features.
I've frequently seen nuances or overlooked details from a well-known Java feature mentioned in a brief blog post. I prefer to visit websites like Dev. to, FreeCodecamp, and Medium, especially certain dev-focused publications, while looking for good development articles to read.

Profile photo for Jeremy Deats

After doing this for 16 years I would say you need to accomplish the following to be a "great" programmer.

1. Being able to implement quality code quickly (above average output). Performance and quality of work combined always separate a hobbyist from a pro. Programming is no different than other trades in this regard.

2. Knowing design and architecture patterns related to the field you specialize in without having to always resort to reference material (this goes along with performance)

3. Being humble enough to learn from mentors (often even those younger with less overall experience) and bein

After doing this for 16 years I would say you need to accomplish the following to be a "great" programmer.

1. Being able to implement quality code quickly (above average output). Performance and quality of work combined always separate a hobbyist from a pro. Programming is no different than other trades in this regard.

2. Knowing design and architecture patterns related to the field you specialize in without having to always resort to reference material (this goes along with performance)

3. Being humble enough to learn from mentors (often even those younger with less overall experience) and being willing to put ego aside

4. Being philanthropic with your knowledge (become a mentor to others just starting out or young students).

How do you accomplish this? A lot of hard work and little luck. I'm still working on it.

Profile photo for Kaitlyn Hanrahan

I disagree with the consensus that you just need practice to become a great programmer. That goes without saying. That's like asking "how do I become a world class cyclist" and being told, "take more bike rides."

You need practical experience to become a good or competent programmer. It takes much more to become a great programmer. Here are some of my suggestions.

The primary thing you need is mentorship. You simply can't see your own faults and bad habits. This can come in the form of formal classes, with a professor or TA who corrects you. It could be from a code review at work. It could com

I disagree with the consensus that you just need practice to become a great programmer. That goes without saying. That's like asking "how do I become a world class cyclist" and being told, "take more bike rides."

You need practical experience to become a good or competent programmer. It takes much more to become a great programmer. Here are some of my suggestions.

The primary thing you need is mentorship. You simply can't see your own faults and bad habits. This can come in the form of formal classes, with a professor or TA who corrects you. It could be from a code review at work. It could come from a similarly skilled peer during a pair programming session. It could even come from reviewing other programmer's code and seeing their mistakes (which you probably also sometimes make). We all have bad habits. Everyone that is pointed out so you can correct it makes you a better programmer. You could find something to improve in anyone's code.

You should take some time to read the classics. This article is a good place to start building your bookshelf: Programmers Don't Read Books -- But You Should
Also here are a few of my own favorites:
The Mythical Man-Month
The Design of Everyday Things
The Pragmatic Programmer: From Journeyman to Master
Design Patterns: Elements of Reusable Object-Oriented Software

Eventually you will need a specialization. Computer Science and even just Software Engineering are broad fields. No one can be an expert in it all. It would be like a medical doctor knowing as much about eyes as an ophthalmologist and at the same time as knowing as much about feet as an podiatrist. Whether a language, an industry (biotech, finance), a platform (windows, apple, mobile, web), or a sub-field (usability, security, localization, quality, data, networks, performance), or some combination -- you should have things that you are better at than other things.

At the same time, diversification is also necessary. If you are a world class Java programmer, I would bet that you also know other languages. It gives you perspective. Helps you make implementation decisions. Generally makes you a better programmer. I would say any "great" software engineer should have a little experience in an OO language, functional language, compiled language, scripting language, low level language, high level language.

I'm no security expert, but I still made an effort to learn the basics, go to the occasional conference (they're also just fun), and keep up with what's new in the field. I have a much stronger interest in usability. I'm an engineer, not a designer, but I still eat up design and usability publications with as much fervor as if I were one.

It also takes a bit of passion. Software is a fast moving field and it takes effort to stay on top of it. From just the new and trendy to the new standard way of doing things, you're going to need to read off the clock.

Know more than average about Programming Languages. PL is just another sub-field in CS, and some engineers will have more interest in it than others. But IMO, knowing a little more than average about programming languages is a requirement to being a great coder. A great coder picks the best languages for the job. And to do that she has to know what makes it the best language. And she has to know how to take advantage of key features in any languages that she's using.

Similarly, if there is any official "Guide" to becoming a great programmer, it is probably a PhD in PL.

To be a great anything is more of a journey than a destination. The more you know the more you will be aware that you don't know. I would be suspicious of anyone who called themselves a "great programmer".

There are a lot of similar questions here on Quora that might give you some more ideas.

Best of luck on your journey to greatness!

--------------------------------------------------------------------
Update May 26, 2015 -----------------------------------------

I feel compelled to give a reply to Aideen NasiriShargh's mention of my answer. This is a question that deserves different point of views. As we both give reference to, greatness is an elusive thing. Aideen says, "I don't call myself completely qualified to answer this question". I say, that greatness is more of a journey than a destination and "I would be suspicious of anyone who called themselves a 'great programmer'" (meant to imply that I also don't call myself a great programmer).

However, since he goes out of his way to reference and misquote me, I feel it merits a reply.

Aideen and I are coming at this question from slightly different angles and experiences. Specifically our answers differ...

(1) First, our take on Formal Education. I have great value for my Computer Science degree. I feel it complements my practical experience and allows me to write code at a level that I would never have reached with practical experience alone. Based on Aideen's third point, it seems he did not share my positive experience.

(2) Second and more relevant, who is asking this question / reading this answer. Something certainly up for interpretation.

While I value my CS degree, I'm not assuming the reader already has one or would benefit from starting one. If you have a degree in CS, then you are probably already heavy on the Theory side and in that case more practice is probably the best prescription for you (and you probably know that). On the other hand, from the sense I've gotten, the audience here is has a lot of people coming from the self-taught experience. In that case, you probably want to beef up your theory.

Combined with my own theory heavy background, I felt more qualified on giving some tips on filling in that side. I think one needs both to reach "greatness". I grant that my list is more theory centric than Aideen's and that this is certainly not what everyone needs. Again, this is a question that deserves multiple answers.

Again in where we are coming from, since there have been so many comments comparing our answers. When I answered this question, there were a dozen answers that simply said "you need practice" and "you need passion". When Aideen answered, my answer was the top answer by over 1,000.

I took the position that practice is a requirement for "competency", but should go without saying when the conversation moves to "greatness".

I put passion toward the end of my list for two reasons. First, while it is worth a mention, we hear a lot about following our passion and I didn't think I needed to emphasize it further. Second, "have passion" is pretty useless advice.

For the second part of my update, Aideen NasiriShargh misquoting me...

Aideen quotes me with:

I don't want to look like a jerk, but the fact that thousands of people upvoted "PhD in PL is the best Guide" and "The primary thing is having a mentor" just blew my mind off.


PhD in PL...

My original answer mentions diversification and specialization in different sub fields of Computer Science. Then, as my very last point, I mention that if one is pursuing a career in Software Engineering, then the sub-field of Programming Languages is specifically worth learning a bit more about. I give some reasons why I feel it is useful in the real (working) world.

I have the impression that Aideen only skimmed my answer, but it also seems he skimmed the question. The question details are, "Is there any guide to becoming a great programmer?".

My entire mention of getting a PhD is this one-sentence paragraph as an afterthought to my shout-out to Programming Languages:

Similarly, if there is any official "Guide" to becoming a great programmer, it is probably a PhD in PL.


I will now explicitly write out what I thought was implied in that statement.
There is no guide to becoming a great coder.

The majority of people should not pursue a PhD, but that is really getting outside the scope of this question.

Mentorship...

I've had a few discussions in comments with people about a better word for what I call "mentorship". I give 4 examples of what I mean by "mentorship" and where one might find mentorship. Not a single one is "having a mentor", as Aideen says I say. Perhaps I should have said "outside influence" rather than "mentorship". I just like the word better, and it is my answer :p

I stand by this being #1 (when you already assume practice, as I stated I do). The next most popular answer after ours (at the moment, anyway) simply lists "1. write code everyday" and "2. hang out with other people who code". So despite it "blowing your mind off", it's not so radical an idea.

In Closing, Dear Aideen,

So, Aideen, I hope I'm not sounding like a jerk now. I think your answer is a great addition to this question, with the obvious exception of the first paragraph that is simply attacking and misquoting mine. It's different from my point of view, and that's a good thing. Again, this is a general question that could have a 100 useful answers. I've enjoyed reading the others. I certainly don't think mine should be the only one and I was (pleasantly) shocked by the large and positive (except, of course, for your) response to it.

Your answer lists topics including passion, persistence, bravery, and trust. To me, this comes across more as a motivational speech than an answer to a question. Yours is better than the average expression of the same sentiment and does gets into a few specifics. However, IMO this idea has been repeated as nauseum and is not extremely actionable advice. To me, it comes across more as "this is what you should have been born with" than "these are some things you might not have thought of adding to your arsenal to help push you to the next level". So ditto to you, the fact that you received 3k upvotes "blew my mind off" (though not really, I would have never cared if you didn't first misquote me).

And in case you actually care, which I doubt you do, slightly misquoting me in a way that completely changes the meaning of my words before then insulting that new meaning, does make you a bit of a jerk. Cheers!

Profile photo for Dave Aronson

Same way you get to Carnegie Hall: practice!

Seriously. Find some sites with a bunch of small problems to solve, and solve them... and make your solutions public and ask for feedback. One great place for this, with support for a bunch of different languages, is exercism.io -- yes, "exer" as in exercise, not "exor" as in "The Exorcist". (You are also expected to give feedback, which is harder than it sounds, so that's another useful skill you can hone there.) You can also look at various repositories of Code Katas like at Code Katas - codekatas.org or CodeKata or Coding Dojo Wiki: KataCatalo

Same way you get to Carnegie Hall: practice!

Seriously. Find some sites with a bunch of small problems to solve, and solve them... and make your solutions public and ask for feedback. One great place for this, with support for a bunch of different languages, is exercism.io -- yes, "exer" as in exercise, not "exor" as in "The Exorcist". (You are also expected to give feedback, which is harder than it sounds, so that's another useful skill you can hone there.) You can also look at various repositories of Code Katas like at Code Katas - codekatas.org or CodeKata or Coding Dojo Wiki: KataCatalogue. Some sites provide a way to share your solutions, or you can start a blog (that's how I started tech-blogging), or put them in a Github account.

When you're good enough to make meaningful contributions to projects, you can look on Github for projects that need something done. (Preferably one that gives thorough reviews on pull requests.) Or, scratch your own itch and start an open source project... and do whatever you can to get other people involved in reviewing your pull requests. I've got the MVP of an idea for that running at Pull Request Roulette; you can add your PRs there and see if anyone volunteers to review them.

Meanwhile, keep learning. Aim for one new language, major framework, or major technique every year. As you realize how much there is to learn, you may find yourself battling Impostor syndrome or Dunning–Kruger effect; now that you know about them, the battle will be easier. :-)

Let us know how it goes!

Profile photo for Mobisoft Infotech

What is the best way to become a great programmer?

The best way to become a great programmer is by practicing your code. You should consistently learn and improve your programming skills to be the best. Ensure that you understand all the basic and advanced aspects of programming including data structures, coding languages, algorithms, etc.

Do not rely on mentors for all the information and guidance. You should take time to research and learn about trending technologies, software, applications, etc. Reading blogs, watching online video tutorials, attending webinars, and collating all the obtained

What is the best way to become a great programmer?

The best way to become a great programmer is by practicing your code. You should consistently learn and improve your programming skills to be the best. Ensure that you understand all the basic and advanced aspects of programming including data structures, coding languages, algorithms, etc.

Do not rely on mentors for all the information and guidance. You should take time to research and learn about trending technologies, software, applications, etc. Reading blogs, watching online video tutorials, attending webinars, and collating all the obtained information shall help you in writing effective, simple, and concise codes.

Sharing below some quick important tips that can help you become a great programmer.

  1. Take Baby Steps - You should try understanding and solving basic programming issues instead of jumping on to complex coding.
  2. Plan & Choose - You should plan and choose a language that helps you grow continuously. Besides, learning more languages is an add on.
  3. Question & Understand - Always ask questions on how the code will work and understand its concept even in tight deadlines.
  4. Go for Logical Codes - A great programmer is one who can avoid complex coding methods to write logically and not like an assignment.
  5. Analyze & Review - Give enough time to analyze and review your codes at every stage. Taking feedback from others shall prove beneficial.
  6. Read Documentation - You can be a good programmer if you develop the habit of reading API documents, specifications, JSR, how-to tutorials, etc.
  7. Set Goals - Set practical goals and practice to meet the stipulated timelines. Learn or write codes by setting proper deadlines.
  8. Be Unique - Find your ways of reading, writing, learning, and implementing codes. Don’t compare your programming skills with others.

Beginner or expert, the above points shall surely help you in becoming a great programmer. Make sure you develop high-end coding skills as businesses always look for professionals who help generate profitable outcomes.

Profile photo for Jay Nabonne

Let’s say some day someone says to you, “You’re the best programmer!” What does that mean? Does it say anything about you?

Actually, it doesn’t. “Best programmer” is not only subjective, it has no real meaning in and of itself.

What it does say, though, is how the person who says it thinks about you. In other words, “best programmer” is expressing something about the person saying it. It says nothing about you at all, other than that you’re a programmer.

Have you ever seen those mugs that say things like “World’s Best Dad” or “World’s Best Boss” or whatever “World’s Best” you can think of? Do the

Let’s say some day someone says to you, “You’re the best programmer!” What does that mean? Does it say anything about you?

Actually, it doesn’t. “Best programmer” is not only subjective, it has no real meaning in and of itself.

What it does say, though, is how the person who says it thinks about you. In other words, “best programmer” is expressing something about the person saying it. It says nothing about you at all, other than that you’re a programmer.

Have you ever seen those mugs that say things like “World’s Best Dad” or “World’s Best Boss” or whatever “World’s Best” you can think of? Do they say anything about the person who has them besides that they are a dad or a boss? What it does say, though, is how the person who gave them the mug feels about them.

So (after all that), the answer to the question: in order to become the best programmer, you need to do things that will make someone say you are the best programmer. That’s it. It always comes from someone else. There is no actual definition of “best programmer”. It has no objective meaning.

In fact, “best programmer” has no meaning at all. For every person who thinks you’re “the best”, there will be a dozen or more who think you’re not.

Edit: If this sounds a bit snide, it’s just because I see so many questions where people are terribly concerned about being something. But, in the end, it doesn’t matter what you are. It matters what you do. A title like “best programmer” is fleeting. A title like “programmer”, even, is arbitrary. But if you can point to what you have accomplished in your career (or life), that is worth something. Not being called “best” by someone.

Profile photo for Kochiva FL

Becoming a great programmer is cool and all about mixing tech skills, always learning, and trying things out. So, we are exploring some steps together that can turn your goal of being a great programmer into a reality. Let's check out some steps to get you there!

Learn the fundamentals: Start by learning the basics of:

  • Programming languages
  • Data structures
  • Algorithms
  • Software development principles

This foundation will help you understand the core concepts and build a strong programming base.

Choose a programming language: Select a programming language that aligns with your goals and interests. Inves

Becoming a great programmer is cool and all about mixing tech skills, always learning, and trying things out. So, we are exploring some steps together that can turn your goal of being a great programmer into a reality. Let's check out some steps to get you there!

Learn the fundamentals: Start by learning the basics of:

  • Programming languages
  • Data structures
  • Algorithms
  • Software development principles

This foundation will help you understand the core concepts and build a strong programming base.

Choose a programming language: Select a programming language that aligns with your goals and interests. Invest in understanding one language thoroughly before diversifying your skill set. Popular choices include:

  1. Python
  2. Java
  3. C++
  4. JavaScript

Practice regularly: Consistent practice is key to improving your programming skills.

  1. Solve coding challenges
  2. Work on small projects
  3. Participate in coding competitions to enhance your problem
  4. Solving abilities and gaining hands-on experience

Collaborate and learn from others: Engage with the programming community by joining forums, attending meetups, and participating in open-source projects. Collaborating with experienced programmers will expose you to different perspectives and help you learn new techniques.

Read and study: Stay updated with the latest trends, best practices, and advancements in programming. Read books, blogs, and articles written by industry experts to expand your knowledge and gain insights into different programming concepts.

Fuel your creativity: Spark your code with purpose by building projects that matter. Dive into manageable tasks and gradually unlock your potential with ambitious builds.

Building projects will help you understand the practical aspects of programming and improve your problem-solving skills.

Gain insights from your errors: Programming is a process of experimentation and learning. Embrace failures as learning opportunities and analyze your mistakes to understand how to improve.

Proficiency in debugging and troubleshooting stands as indispensable skills for any programmer.

Stay curious and keep learning: The field of programming is constantly evolving. Stay curious, explore new technologies, and keep learning.

Continuously upgrading your skills will help you stay relevant and adapt to changing industry demands.

So, there you have it—becoming a great programmer. So, gear up, and keep coding. Hopefully, it will be helpful.

Icon for Developer's Paradise

As a software development engineer myself, I recommend the following:

  1. Follow a book while learning.
  2. Read about the concepts and then implement them.
  3. Dry run the code to get better understanding of the flow of code.
  4. Coding is a number game. Practice as much and as many questions as you can.
  5. Work on projects so that you can commercialize your skills at a later stage.

Happy Coding :)

Profile photo for Saurav Sharma

The only thing which separates a great programmers for a mediocre ones is being genuinely curious.

While I agree that great programmers practice a lot, write a lot of code, read documentation etc however, all those things are secondary and are the result of being genuinely curious.

One of the best people I know in almost every profession are the ones who are genuinely curious about their fields.

This curiosity in turn gives them the motivation and drive to do the right things needed.

What do I mean by being genuinely curious?

There are a lot of people who get into programming just because it seems

The only thing which separates a great programmers for a mediocre ones is being genuinely curious.

While I agree that great programmers practice a lot, write a lot of code, read documentation etc however, all those things are secondary and are the result of being genuinely curious.

One of the best people I know in almost every profession are the ones who are genuinely curious about their fields.

This curiosity in turn gives them the motivation and drive to do the right things needed.

What do I mean by being genuinely curious?

There are a lot of people who get into programming just because it seems like a good paying career.

Although there is nothing wrong in choosing a career which pays well, but that should not be the only thing which drives or motivates you to learn to code.

Lets be honest here, we all want to get paid and make more money, however having that as the only motivator would do more harm than good in the long run.

On the other hand, when you are so interested in learning how things work and why they are the way they are, things start to change.

You are now naturally driven to learn and do things the right way.

The motivation which comes out of curiosity is internal rather than external and hence lasts much longer.

What happens to people who don’t have the curiosity ?

People who are driven by external factors are more likely to give up.

Lets face it, programming is hard and it gets harder as you dig deeper.

If you are not curious, you will be frustrated all the time when you are hit with a problem.

People who are not curious will always do their bare minimum to get the job done and would never go the extra mile.

How curiosity makes you a great programmer:

You will have that inner motivation which comes from being curious.

You will love problems, not hate them.

You will love your job not because it pays you well but because you are doing what you are curious about.

Learning how to code will feel like an enjoyable journey rather than an uphill battle.

I hope this helps.

Stay curious!

Read my other answers:

Saurav Sharma's answer to What are some good, free resources to learn Python?

Profile photo for David Johnston

Here are five steps to becoming a great programmer:

(1) do a lot of programming

(2) continually challenge yourself: try a new programming language; implement new algorithms; try different programming techniques

(3) refactor code: take existing code and make it better

(4) develop code iteratively which at any stage runs and does something. This is a skill in itself. All the best programmers know you cannot fully design up-front.

(5) work with other people: code is written for other people not for yourself, and it is only by working with other people, with different ideas, that you will understand w

Here are five steps to becoming a great programmer:

(1) do a lot of programming

(2) continually challenge yourself: try a new programming language; implement new algorithms; try different programming techniques

(3) refactor code: take existing code and make it better

(4) develop code iteratively which at any stage runs and does something. This is a skill in itself. All the best programmers know you cannot fully design up-front.

(5) work with other people: code is written for other people not for yourself, and it is only by working with other people, with different ideas, that you will understand why you cannot code the way you might on your own.

A good analogy is speaking English. You may be brilliant technically at the language but if other people cannot understand you, then there is no point in that brilliance. Code should meet needs, and those needs come from people. It is only by understanding those people (your users), that you can expect any of your code to be useful.

Profile photo for Avinash Seth

Mistake people do which lead them to become worst programmer

  1. Learning every single language
  2. Learning the syntax of every language
  3. Reinventing the wheel again and again
  4. Not choosing your turf
  5. Spending most of the time in learning

Best way to become a programmer

  • Learn or master just one language with concepts not syntax
  • Understand that what you want has already been built by someone else more efficeintly. Use it
  • Understand who you want to be
    • A web developer
    • A full stack developer
    • A game developer
    • Server administration
    • Database administrator
  • You don't learn much by learning but implementing

Speaking all this fro

Mistake people do which lead them to become worst programmer

  1. Learning every single language
  2. Learning the syntax of every language
  3. Reinventing the wheel again and again
  4. Not choosing your turf
  5. Spending most of the time in learning

Best way to become a programmer

  • Learn or master just one language with concepts not syntax
  • Understand that what you want has already been built by someone else more efficeintly. Use it
  • Understand who you want to be
    • A web developer
    • A full stack developer
    • A game developer
    • Server administration
    • Database administrator
  • You don't learn much by learning but implementing

Speaking all this from my personal experience

Profile photo for Mukesh Sharma

1: Code Everyday

2: Write It Out

3: Go Interactive!

4: Take Breaks

5: Become a Bug Bounty Hunter

6: Surround Yourself With Others Who Are Learning

7: Teach

8: Pair Program

9: Ask “GOOD” Questions

10: Build Something, Anything

11: Contribute to Open Source

Go Forth and Learn!

Profile photo for Jabbar Developer

Becoming a great and successful programmer takes hard work and determination. If you want to be a great programmer, you need to learn constantly. You should study how other great programmers do things, and then try to implement those methods in your own code. Like any other skill, programming requires practice and effort. There is no shortcut. The effort you put into learning the principles of programming is far more valuable than the time you spend writing code. To become a successful programmer you need to be driven by the pursuit of excellence. People who are driven by money, power, fame, o

Becoming a great and successful programmer takes hard work and determination. If you want to be a great programmer, you need to learn constantly. You should study how other great programmers do things, and then try to implement those methods in your own code. Like any other skill, programming requires practice and effort. There is no shortcut. The effort you put into learning the principles of programming is far more valuable than the time you spend writing code. To become a successful programmer you need to be driven by the pursuit of excellence. People who are driven by money, power, fame, or prestige will never be happy. If you work hard and are willing to do the things that most programmers won't, you will be able to attain success and glory in your field.

It truly is an art to master programming. Programming is not so much about following a set of instructions, as it is about solving problems, thinking critically, and learning new things. Your approach to your work is much more important than any specific set of skills. One of the most important things you can do to become a great programmer is to be passionate about it, and never stop learning new skills. You should never stop reading or watching tutorials. Most programmers learn a lot of their skills from reading books, Wikipedia articles, and other resources. Try to keep an open mind when learning. There are some great books that you can use to learn from, and also online tutorials. Find a good online tutorial site and study hard.

It is a fact that programming is fun and pays good money. So if you love programming, then invest sufficient time, energy and commitment to be really good at it. It won't be easy in the beginning, but the satisfaction and success will be immense in the long run. Here is the formula to become a great programmer:

Profile photo for Prakash Hari Sharma

How to Become an Expert Developer ?

I've been asked several times about how to become an expert developer, so I decided to finally answer this question to the best of my ability. Of course there is no single path to expertise that works or is right for everyone. It depends a lot on what industry you are developing software for, and what tools your company uses etc. Anyways, in this text I'll present a general "path" to expertise which you can adapt to your own situation.

Keep in mind as you go through this text, that there is a difference between being an expert, and being perceived as an expert

How to Become an Expert Developer ?

I've been asked several times about how to become an expert developer, so I decided to finally answer this question to the best of my ability. Of course there is no single path to expertise that works or is right for everyone. It depends a lot on what industry you are developing software for, and what tools your company uses etc. Anyways, in this text I'll present a general "path" to expertise which you can adapt to your own situation.

Keep in mind as you go through this text, that there is a difference between being an expert, and being perceived as an expert. Lots of people are being promoted as experts, who really aren't. But, if people believe they are, they still make lots of money, being only mediocre. Additionally, there are many experts that nobody knows are experts. If you truly are an expert, your next move would be to also be perceived as an expert. How to become that is out of the scope of this text though. That's a different story about personal branding etc.

What is an "Expert", and How Long Time Does it Take to Become One?

Before I start discussing how to become an expert, let me spend 30 seconds on what an expert is, and how long time it takes to become one.

No, you are not an expert after 3 months of using a skill, nor after 3 years. According to the book "Outliers" by Malcom Gladwell, it takes 10.000 hours on average to become a true expert. A virtuous if you like. 10.000 hours! That's 10 hours a day, every day, for 3 years. Or, more likely, 5 hours a day, 200 days a year, for 10 years. 10 years!

Along this claim, I've noticed that I believed I was an expert or senior developer already after about 3 years of experience. Now, in 2010 with about 10 years of experience, I've learned how much there is to know, and how much I still don't know, and now I don't feel like such an expert anymore.

Additionally, the industry (Java enterprise development) has changed a lot over the last 10 years, so the skill I used to master, are not all that "cool" anymore. So even if you are an expert, you may find yourself becoming obsolete, and having to start over.

One more thing: You are seldom an expert in everything, meaning you may be better than person B in one skill, and person B may be better than you in another skill. It's not like you are either better in every skill than someone else, or worse. You can almost always learn something from everyone. Several developers I have met act as if they know everything best, even when the clearly don't.

In fact, this is often a way to spot a noob. The believe they know it all, and will argue to death either online or offline. They will argue in absolutes, like "This is ALWAYS better than that", or "This is THE way to things" etc. Experts rarely do that. They know, that it all depends on situation, skills your developers have, tools chosen by your company, company policies, personal preferences etc. Inexperienced developers (and people in general) tend to believe the world is black and white. Experts know, it's full of gray scales, and even lots of additional colors and shades.

How to Become an Expert

For most skills you need to learn, there are four steps that will help you become an expert. Most often you will go through these steps in sequence, yet with iterations up and down the steps on the way too. Here they are:

  • Learn it
  • Do it
  • Discuss it
  • Teach it

Learn it

Before you can master a skill you must learn it in theory. You can do this via books, tutorials, via education, or by messing around with it.

Do it

Once you have learned the skill in theory, you need to apply the skill in reality. By applying your skill in reality, you learn where the theory you learned is right, and where it is wrong. Yes, often universities will teach you theory that doesn't work in reality, or that doesn't apply in your situation.

Discuss it

Once you have used your skill for a longer period, and find that you were able to solve pretty much any problem thrown at you, which required this skill, it is time to discuss the skill with other experienced people. Discuss what the best ways to apply the skill is, where the limits of the theory are, what could be added etc. In short, discuss how to push the skill even further (e.g. an API. How to make it better / different etc.).

Through discussion you will learn a lot from other people, even if you thought you new it all.

Teach it

Teaching your skill to others is a really great way to polish the last corners of your skill. There may be many things to just do, without thinking about why you do them like that. Having to explain your ways and methods forces you to think about why you do what you do.

Additionally, there may be corners of your skill that you have never needed to master (say, corners of the web service specification). Having to teach your skill will force you to also master these corners too, making you better than you were before.

How to Become an Expert Developer

Now that I've talked about becoming an expert in general, I'll talk a bit more about how to become an expert developer.

As a developer you will most likely be developing software for a specific industry (at least for a while), and using a specific platform. If not, if you are switching tools and industry constantly, like some web developers do, you will most likely never become a real expert. You will become a Jack-of-All-Trades, which is also useful in some situations. If you are not focused on platform and industry, and you want to become an expert, you need to focus.

On your path to expertise, you will have to chose a platform, and possibly an industry too. Industry is less important, but having business domain knowledge really strengthens your profile.

When learning a platform you will start out with the language. For instance, the Java language. After the language you need to learn the platform (all the API's and tools). In Java, the platform is divided in two: The standard edition and the enterprise edition.

Once you begin to master your platform, you should start learning platform independent skills, like design patterns, distributed system design, architecture, usability etc. As you get better, you will spend more and more time learning these skills. This is a good thing. These skills are more easily transferable to a new technology platform.

Finally, you may move away from software development all together, moving into different business areas like project management, an architect job etc. Just remember, that once you stop using your developer skills, you will slowly stop being an expert.

You have to fill in the concrete tools, techniques etc. for your industry, your company, and your platform. This is not something I can do once and for all, for everyone.

A good way to find out what you should learn is to look at job ads.

What tools and techniques are they requiring most often?

Read software magazines online.

What technologies are they talking most about?

Read forums.

What technologies are people asking most questions about?

And, what technologies are people buzzing most about?

In other words, what will become hot tomorrow?

All The Best !!!

Profile photo for Keshav Kabra
  • Code as much as possible… practice is the key…
  • Do not believe that ‘someone’ will teach you entire coding skills. It is true that lectures and teachers may help you, but at the end of the day, you have to give efforts by your own too.
    • Be the incharge of yourself. It will allow you to learn more things quickly. You have not to wait for your teacher to come on that topic.
    • Teachers can only give information, it’s all about you that how you get and learn it.
  • Work on Data structures the most.
  • Must do competitive programming on the language you are interested in.
  • Set practical specific goals and deadlines
  • Code as much as possible… practice is the key…
  • Do not believe that ‘someone’ will teach you entire coding skills. It is true that lectures and teachers may help you, but at the end of the day, you have to give efforts by your own too.
    • Be the incharge of yourself. It will allow you to learn more things quickly. You have not to wait for your teacher to come on that topic.
    • Teachers can only give information, it’s all about you that how you get and learn it.
  • Work on Data structures the most.
  • Must do competitive programming on the language you are interested in.
  • Set practical specific goals and deadlines for learning coding or to make a project.
  • Plan before coding; but planning too much before coding is also bad.
  • Endlessly research technologies without spending time actually writing code is worthless.
  • Choose a programming language that suits you. For general purposes, Python is best option. You should learn C/C++ as well, it will give you deep inside of how to code.
  • Take small steps. Don’t just try to make a big leaps, start with small coding problems and let your skills grow continuously over time.
  • Seeing someone else’s code is not a crime - if you have tried your best to solve that problem. It will definitely give your mind other dimensions of thinking how to code a problem.
  • Do not think that coding is too difficult. Once you know all basic ideas and functions, it will seem to be too easy.
    • But don’t think that is too easy and you will learn it after some-days… Making mistakes is not a ‘crime’ but procrastination is…
  • Help others :
    • While explaining code, the concepts will be more clearer.
  • Use Google. In today’s case if you know ‘what to do ?’ - your good problem-solving skills; Google can tell you ‘How to do ?’
  • Don’t get desperate too early. At first, you might not be able to solve all problems, but have faith in yourself. Learn continuously.
  • Know the full expressive power of your language :
    • e.g., C++ has STL function libraries which gives you predefined functions with best possible complexities; e.g., algorithm, vector, string, etc.
  • Always dry-run the code or use Debugger. It will give you actual picture how your code is working.
  • And don’t waste much of your time thinking how you learn coding, just roll your sleeves up and jump in the ground to make actual efforts.

See : What are the mistakes people do while learning programming?

Upvote the answer if you find it worthy …

Visit my profile for more Tech/ Programming answers : Keshav Kabra

Profile photo for Akilesh Praveen

When you want to get better at baseball, people will tell you to practice. When you want to get better at solving certain types of math problems, people will tell you to practice. When you want to hit every note in a song perfectly, people will tell you to practice. Thus, I believe that one of the most popular answers you will get is this: Just keep practicing.

While I somewhat agree with that, I f

When you want to get better at baseball, people will tell you to practice. When you want to get better at solving certain types of math problems, people will tell you to practice. When you want to hit every note in a song perfectly, people will tell you to practice. Thus, I believe that one of the most popular answers you will get is this: Just keep practicing.

While I somewhat agree with that, I feel that there is a more challenging and rewarding way to get ‘better’ at a programming language than simple writing a large volume of it. (In this case, I’m assuming that ‘better’ means learning how to get more functionality out of a smaller amount of code, or learning how to utilize code for entirely new tasks).

My answer to this question is, yes, keep practicing, but if you really want to get better and more knowledgeable in a language, you need to constantly look at code that is almost too complex for you to understand. If you’re trying to learn HTML, then why not view the source code of Quora.com? See if the writers employ certain practices that you’ve never seen before! Trying to get a better grip on Python? Why not hop on GitHub and search for an elaborate project that requires a lot of code! The more popular the code, then hopefully the better it may be. My main point here is to constantly scrutinize code that is more elaborate than anything you have ever seen be...

Profile photo for Leonardo Graterol

I’m gonna answer with an old musicians’ joke.

A tourist is walking in the streets of New York and asks a street musician:

-How do I get to Carnegie Hall?

To which the musician replies:

-Practice, practice, practice

I’m gonna answer with an old musicians’ joke.

A tourist is walking in the streets of New York and asks a street musician:

-How do I get to Carnegie Hall?

To which the musician replies:

-Practice, practice, practice

Profile photo for Sh. Daniyal Arfeen

If you want to become a good programmer, the best way is to do BS in Computer Science. If you are finding a good programmer you can use Fiverr for this.

Another ways are like a short courses.

  • Do short courses from YouTube.
  • Many institutes are there for short programming courses.
  • Form software houses.
  • From software shops.

If you want to become a good programmer, the best way is to do BS in Computer Science. If you are finding a good programmer you can use Fiverr for this.

Another ways are like a short courses.

  • Do short courses from YouTube.
  • Many institutes are there for short programming courses.
  • Form software houses.
  • From software shops.
Profile photo for EAH

It would help if you just did programming for your whole life and not be distracted by something else. Its also important to start young. As someone here said, keep your hands busy typing and developing things and improve on it frequently. Dig your head in programming books and be up-to-date with advances in programming technology. Also build domain knowledge in the areas of programming that interest you, so don’t just understand it as a programmer (how you would program and develop it) but also as a user (how you would use it).

Here’s something practical you could build upon:

Learn/Master Java

It would help if you just did programming for your whole life and not be distracted by something else. Its also important to start young. As someone here said, keep your hands busy typing and developing things and improve on it frequently. Dig your head in programming books and be up-to-date with advances in programming technology. Also build domain knowledge in the areas of programming that interest you, so don’t just understand it as a programmer (how you would program and develop it) but also as a user (how you would use it).

Here’s something practical you could build upon:

Learn/Master Java by Developing An Enterprise Scaleable Business Application This could be an accounting or financial application or hospital system where you could be using a Java application server which is able to scale your apps to several thousand users and manage your connections, beans and objects

Delve a little bit into game programming, virtual reality (VR), 2D/3D graphics and build up your knowledge Here, a good place to start would be learning Unity/C# where currently a lot of games and VR are being built. If you are adventurous, try Blender and/or Maya and/or the Adobe Studio Suite. If you really develop an interest in this area, you might find yourself trying out C/C++, Lua, etc.

Learn web development Here its all about mastering HTML5, CSS, Javascript and jQuery and add to that your Java skills from above (Java web development). Build a web-based accounting app or an online webstore with cart services and online payment.

Mobile development Here you could either delve into Android or Swift/Objective-C/Cocoa to develop for mobile devices.

Database knowledge This is an important area to build mastery in. Master the SQL language and also learn about non-SQL databases like Mongo or Couch and their collections and know the differences between SQL and No SQL. Also take up Big Data where you could go into Hadoop, Kubernetes, Tableau and where the NoSQL databases take up an important role.

Learn a little about Javascript frameworks and SPAs These are the newer technologies that have become popular recently because of mobile devices such as Angular, React, Vue, node.js

Learn to interact with hardware and do some interface programming Here you can do some programming to read barcodes and QR codes or do facial recognition technology or read smartcards or maybe interfacing to a motor, actuator or simulator.

Besides the above, several niche areas you could further get into are drone programming, robotics and AI.

Profile photo for Brian Dempsey

Hmm.

Well plan to learn something every day. If you learn just one thing every day for ten years you will know a lot.

Direct those learning efforts. I found a book called C# essentials. I read a bit of it. Yes, I know a lot of it but this book was written by people on the Microsoft compiler team. The detail of the book is fantastic. Remember that even if you have experience there will be holes in your knowledge. Try to fill those holes.

Don’t get hung up on one language. I have programmed professionally in many languages. One language is not “good” nor another “bad”. They all do different things

Hmm.

Well plan to learn something every day. If you learn just one thing every day for ten years you will know a lot.

Direct those learning efforts. I found a book called C# essentials. I read a bit of it. Yes, I know a lot of it but this book was written by people on the Microsoft compiler team. The detail of the book is fantastic. Remember that even if you have experience there will be holes in your knowledge. Try to fill those holes.

Don’t get hung up on one language. I have programmed professionally in many languages. One language is not “good” nor another “bad”. They all do different things well.

Focus on fundamentals. Learn algorithms. Even if you don’t code them yourself you will have a better appreciation of how to do things efficiently. Actually everything you do with a computer involves an algorithm so learning some of the more common ones will help you. Be sure you understand recursion. The concept isn’t that hard — it is just a little weird to think of a method that calls itself. Remember each time the method calls itself it stacks variables unless you declare something static. This is just like calling any other method.

Also learn object oriented programming. It isn’t really hard — just takes some getting used to. Don’t make the mistake of thinking objects are not important. Unless you use C or Cobol, you will need objects. Companies have embraced object oriented coding an you have to know it.

Learn the basic software engineering patterns like DRY and SOLID. There are many others but those two will help you right away write better code right away.

Read the code of others. Read as much code as you can. You will find that some code is bad and some is really cool. You will learn coding styles so that you’ll know who wrote the code without anyone telling you. Learning to distinguish good code from bad is an art. You only improve by looking at many samples of code, some good, some bad.

Then just practice.

Profile photo for Priyansu Singh

Here are some of the advices to become a better developer-

  • Read a lot. You need to keep yourself updated with new technologies, to keep yourself meaningful to the industry. DZone is a great place for this.
  • Work on your debugging skills. In order to be a great programmer, you need to be a good debugger. This skill will develop with practice.
  • Test your code. Have this habit of bringing your code under maximum test coverage. End-to-end testing is important but not complete. Write unit tests.
  • It's not necessarily a good approach to try master each and every tech out there. Just try becoming good at te

Here are some of the advices to become a better developer-

  • Read a lot. You need to keep yourself updated with new technologies, to keep yourself meaningful to the industry. DZone is a great place for this.
  • Work on your debugging skills. In order to be a great programmer, you need to be a good debugger. This skill will develop with practice.
  • Test your code. Have this habit of bringing your code under maximum test coverage. End-to-end testing is important but not complete. Write unit tests.
  • It's not necessarily a good approach to try master each and every tech out there. Just try becoming good at technologies relevant to your current project.
  • Your priority should be to deliver the functionality than to write the cleanest code in the world.
  • Between best OOPs practice and testabilty of your code, always choose testabilty. It's not advisable to have a class with correct singleton structure compared to keeping the code testable.
Icon for HPlus Academy

There are plenty of ways:

  1. Master your basics
  2. Follow coding guidline
  3. Pratice writing clean code
  4. Always test your code
  5. Try to optimize code.

There are plenty of ways:

  1. Master your basics
  2. Follow coding guidline
  3. Pratice writing clean code
  4. Always test your code
  5. Try to optimize code.
Profile photo for Nina Shore

The one easy way to become a good software developer is by making mistakes and learning from them. The path to a developer is never smooth because you will be facing a lot of challenges especially when you are trying to adapt to a new coding environment. For example, previously coders preferred Java and C moderations to code because those are high-level languages. However, after some years, one scientist invented Python and the rest is history.

Similarly, the one easy solution is to be open to change and adapt to the new working environment as much as possible. It is a very well-known fact that

The one easy way to become a good software developer is by making mistakes and learning from them. The path to a developer is never smooth because you will be facing a lot of challenges especially when you are trying to adapt to a new coding environment. For example, previously coders preferred Java and C moderations to code because those are high-level languages. However, after some years, one scientist invented Python and the rest is history.

Similarly, the one easy solution is to be open to change and adapt to the new working environment as much as possible. It is a very well-known fact that technologies are changing or rather improving rapidly, hence staying up-to-date with the changes comes as a second priority. Learning to adapt always remains the first. This is closely followed by learning the skills, especially trending skills which can help recruiters to choose you above other candidates.

Due to changes and improvements in the IT sector, the selection process has become very strict. Hence, having competitive skills nowadays is mandatory for whatever reason.

There are some stages, which you can follow for better results:

  1. Building a foundation?

Solution: To build a base or foundation in software development, you can start studying from books. Once you do a google search, you will find a lot of options to study from. If you are worried about the expenses of books, there are many free e-books available on the internet. It is best to visit an online library and register to enjoy the services.

2. Developing competitive skills and landing a job?

Solution: This is perhaps the most crucial part and books can not help you to study everything within a year and land a job. Hence, in this step, it is better to go for an online course. The suggestion is an online course because it will save a ton of time and money. If you are a working professional, then this is the best option. In the pool of institutes, the reliable ones are handfuls like Udemy and Learnbay.

This institute offers a Full-Stack software development course where they have industry experts assigned to make you understand the industry requirements. They have affordable course fees and less course duration, which you can learn at your own pace.

However, they do not have any job assistance programs.

Compared to other institutes, Learnbay’s Full-Stack software development course offers multiple benefits to the students such as:

  • Live interactive classes with professors who will offer you 1:1 doubt-clearing sessions as well in case you have any queries.
  • They offer domain-based training on elite domains (Web development, web 3.0, Project management, and DevOps & Cloud). Domain-based training will enhance your topic understanding.
  • They will offer IBM certification for the course and you will receive it after course completion. This certification can make you stand out from the crowd.
  • They offer 15+ real-time projects on trending topics like VR-Based applications, CRUD, and Authentication among others.
  • Lastly, they have an effective job assistance program where the industry experts will prepare you for the big interviews through mock interviews, interview quizzes, and resume-building activities. This will be followed by assured interview calls from top recruiters.

Overall Summary

As you can already guess, adapting to changes and learning the right skills are crucial to become a good software developer. Having the right mindset can boost your chances to grow in any domain. Hence, it is advisable to opt for Learnbay, they have domains that can help you to become an expert within a year.

Thank you for reading!

Profile photo for Umashankar Sharma

Jokes apart. Below is what I feel :)

Consistency:

I had been programming for 12 years now. Irrespective of technology stack (Mainframes, Java, Javascript, .net), I had been writing on and on since then.

Experience :

There is no doubt that I solved a considerable amount of business cases and transformed them into a less complex and high performant code. The more experienced you are, the more problem-so

Jokes apart. Below is what I feel :)

Consistency:

I had been programming for 12 years now. Irrespective of technology stack (Mainframes, Java, Javascript, .net), I had been writing on and on since then.

Experience :

There is no doubt that I solved a considerable amount of business cases and transformed them into a less complex and high performant code. The more experienced you are, the more problem-solving skill ideas you have.

Mentor and Seeker:

I seek knowledge from wherever it comes. Be it freshers,seniors, experienced coders, Internet, tech conferences, hackathons, etc. Try reversing your role and act as a mentor and you will see knowledge double-folded as well as confidence growing in you.

Problem Solving:

I try to solve a complex problem everyday and code with the best of algorithms.

Adaption to new technology and languages:

Never fear change and adapt to the technology market as soon as possible otherwise you will feel ousted. I have every idea of client-side, server-side languages, database skills, clouds, and the latest frameworks. but I mastered one of them to kept me relevant.

Designing and Architecting the solution :

Try to learn how the systems are working end to end. Get up and draw the architecture components on board, convert them in to flow charts and mind map diagrams, identify the pain points in architecture, reduce the complexity and then start coding.

Remember someone or you yourself are going to maintain the code piece once it goes into production. Document your code well. Learn to put comments in the codebase.

Learning the business processes before code :

Whatever i...

Profile photo for Lara Deny

To become a good software developer you must have a passion for it. Other than this, you must:

1️⃣Learn continuously- Technology is an evolving field, so learning continuously is crucial. For this, you can also join online courses or institutes to stay updated and get a proper understanding of software development.

Here are some referral courses, based on my research. These courses will help you to achieve your goal as a good software developer.

Learnbay offers a Software Development Certification Program. This program is provided in collaboration with IBM and Microsoft. Moreover, it is designed

To become a good software developer you must have a passion for it. Other than this, you must:

1️⃣Learn continuously- Technology is an evolving field, so learning continuously is crucial. For this, you can also join online courses or institutes to stay updated and get a proper understanding of software development.

Here are some referral courses, based on my research. These courses will help you to achieve your goal as a good software developer.

Learnbay offers a Software Development Certification Program. This program is provided in collaboration with IBM and Microsoft. Moreover, it is designed for professionals to gain advanced knowledge in software development. In addition, they also offer placement assistance, simulated real-time projects, and certification.

Not only this,

You can also explore other platforms like:

    • Software Development program offered by the University of British Columbia. This program is available on the EDX platform.
    • Software Development Explained offered at Pluralsight platform.

After gaining theoretical knowledge, you need to enhance your practical skills. You can build your projects, solve coding challenges, and more to showcase your skills.

Additionally, ensure to have a strong foundation in programming and specialized knowledge. Because it shows your in-depth knowledge of a particular field.

There are some other factors you must consider so that you can become a good software developer, such as:

2️⃣Keep your code clean, well-organized, and properly documented.

3️⃣Embrace the opportunity to learn and grow.

4️⃣Communicate with other developers to seek guidance and learn how to work harmoniously within a team.

5️⃣Lastly, stay open-minded to new ideas and ask for help if needed.

Overall, these are some ways one must look after to become a good software developer.

In summary,

Continuous learning, problem-solving, and collaboration are essential for great software development, not just writing code. Enjoy the process, and may your coding adventures be filled with joy and success!

Happy Learning and Coding!

Profile photo for F Allen Morgan

Do you really want to become a great programmer? Do you really want to sit in front of a computer screen for 10 maybe 12 hours for days on end? Be frustrated when what would appear to be simple program problem, takes you 3 days to figure out? To have to constantly keep up, learn new languages, new code techniques, new “paradigms”? To deal with a boss who doesn’t understand what the heck you do, hasn’t any way to give you help, is busy going to stupid meetings about HR stuff, and announces yet another way the company is trying to reduce costs (you being one of them) and takes yet another benefi

Do you really want to become a great programmer? Do you really want to sit in front of a computer screen for 10 maybe 12 hours for days on end? Be frustrated when what would appear to be simple program problem, takes you 3 days to figure out? To have to constantly keep up, learn new languages, new code techniques, new “paradigms”? To deal with a boss who doesn’t understand what the heck you do, hasn’t any way to give you help, is busy going to stupid meetings about HR stuff, and announces yet another way the company is trying to reduce costs (you being one of them) and takes yet another benefit from you,and plays politics to get ahead?

Coding is more a craft, than a high tech glamorous occupation. I don’t really understand how it got this way, but programmers are looked down upon in the IT industry…yet its software that makes it happen! You get to build elegant logic constructs that seldom see the light of day, and maybe will be derided and misunderstood by your peers.

The motivation has to come from within you, as its unlikely to come from your company or management. And when you get your share of bugs, problems, and headaches you have to push your self to continue on and finish the job, write tedious documentation on code you long forgotten about, do estimates where you have no ideal of the amount of time it will actually take.

A great coder is one who has survived after many years….few are celebrated in their companies, let alone in the industry. That’s what it going to be like for you, you can understand why so many give up and move into management.

Good luck, and fight the good fight!

Profile photo for Quora User

The best method is to get a degree in computer science, but an alternative method… some would say the better one… is to: Program. Learn how to generate a Hello World program (look that term up if you’re not familiar), and make an application out of anything you can think of (there are plenty of Get Started! tutorials out there, some better than others). Make a web site about your family, your dog, your girlfriend/boyfriend. Once you’ve done it, do another one, this time in MVC architecture. Do it all locally, so you don’t need to worry about mistakes. When you make mistakes, figure out how to

The best method is to get a degree in computer science, but an alternative method… some would say the better one… is to: Program. Learn how to generate a Hello World program (look that term up if you’re not familiar), and make an application out of anything you can think of (there are plenty of Get Started! tutorials out there, some better than others). Make a web site about your family, your dog, your girlfriend/boyfriend. Once you’ve done it, do another one, this time in MVC architecture. Do it all locally, so you don’t need to worry about mistakes. When you make mistakes, figure out how to fix them… that is where the real learning takes place.

Besides web applications, you can make a Windows or Linux app that will do something… like manage the household grocery budget, or rate your favorite TV shows/YouTube videos, or calculate the number of days between now and some date the user puts in… etc. This is how I got started with my little Sinclair ZX81 computer with 1k of memory (expandable up to 16k!!).

If you’re doing this on your own with only the web to guide you, try not to fall into some bad programming habits… look up and read sites that talk about best practices. And have fun.

Profile photo for Viraj Kadam

I would like to share my wallpaper here.

You are on half path the monet you decided it to be. :) Congo !@!

I wud suggest you to master a specific language first.

  • C, C++, HTML, CSS, PHP, java, python

Then, practice it to the core, love it, live it… conqure it.(extensive hard coding to the core of the language with all aspects… Like a geek).

See the updates in the worlds n keep practicing….. work on projects, live projects wud help a lot. (gives u knowledge of what is going on in real time rather than books).

Find other coders, help them(teaching is learning twice).

When u can code in ur dreams, sleep,

I would like to share my wallpaper here.

You are on half path the monet you decided it to be. :) Congo !@!

I wud suggest you to master a specific language first.

  • C, C++, HTML, CSS, PHP, java, python

Then, practice it to the core, love it, live it… conqure it.(extensive hard coding to the core of the language with all aspects… Like a geek).

See the updates in the worlds n keep practicing….. work on projects, live projects wud help a lot. (gives u knowledge of what is going on in real time rather than books).

Find other coders, help them(teaching is learning twice).

When u can code in ur dreams, sleep, while eating, driving almost anything.. dude………………..uve just started to be a world class coder.. Enjoy it !!

Happy Coding :)

Profile photo for Andy Boura

Write finished projects and share them. Start as simple as possible and progress up. Once you have the basics learn what every command in your chosen language does and do another project. Then find a reference describing programming patterns, do more projects and apply them to those projects.

Write articles describing each project, why you approached it a certain way and what patterns you used / learnt and your experience.

It’s fine to cut and paste code - but if you don’t understand why every single letter is there and exactly what it is doing - study it more, experiment, look at it in a debugg

Write finished projects and share them. Start as simple as possible and progress up. Once you have the basics learn what every command in your chosen language does and do another project. Then find a reference describing programming patterns, do more projects and apply them to those projects.

Write articles describing each project, why you approached it a certain way and what patterns you used / learnt and your experience.

It’s fine to cut and paste code - but if you don’t understand why every single letter is there and exactly what it is doing - study it more, experiment, look at it in a debugger until you do. Stepping through other people’s code in a debugger under different conditions is a useful skill and a great learning tool.

This could be summarised as:

  1. Learn through application and gain some experience of the basics
  2. Learn from the experience of others (patterns)
  3. And teach what you’ve learnt to ensure you fully understand it and to pay it forwards

Good luck.

Profile photo for Ankita Sinha

To refer to a software developer, software engineer, computer scientist, or software analyst, the term "programmer" may be used. However, in such fields individuals generally have certain skills and knowledge in software development beyond coding. The path to becoming a computer programmer begins with a deep interest in technology and absolute curiosity about language programming.

There is no easy alternative to become a computer programmer. There are many ways of achieving the goal and it is expected that candidates should follow these courses to become a computer programmer. Students can also

To refer to a software developer, software engineer, computer scientist, or software analyst, the term "programmer" may be used. However, in such fields individuals generally have certain skills and knowledge in software development beyond coding. The path to becoming a computer programmer begins with a deep interest in technology and absolute curiosity about language programming.

There is no easy alternative to become a computer programmer. There are many ways of achieving the goal and it is expected that candidates should follow these courses to become a computer programmer. Students can also obtain a bachelor's degree in computer engineering, as that will include the required skills to design, create and install the equipment. Students must be good at math, physics, computing, and chemistry. Here are a number of steps a student could focus on to have a profitable career as a computer programmer.

Step 1: Students are required to successfully complete 10 + 2 by obtaining at least 50 per cent marks, with physics, chemistry, mathematics and computer science as compulsory subjects, from any approved Indian board. Individuals will also need to study these subjects extensively to get a good understanding of the subject.

Step 2: Most colleges and academic institutions conduct entrance exams. The admissions are also made on the basis of the entrance exam results of the applicants. Institutions also offer admissions that depend on the marks 10 + 2. The qualification criteria differ from universities to universities in terms of the marks and enrolment processes.

Popular entrance examinations

JEE Mains (Joint Entrance Examination – Main)

JEE Advanced (Joint Entrance Examination – Advanced)

BITSAT (Birla Institute of Technology and Science Admission Test )

SRMJEEE (SRM Joint Engineering Entrance Exam)

Step 3: Students would require a computer engineering bachelor's degree to pursue this career as a profession. A bachelor's degree is then awarded to graduates as they are expected to go through undergraduate courses to learn the skills needed for the job. If students successfully complete 10 + 2 they will apply for the bachelor's degree programme. Below are some popular bachelor degree programs that we mentioned.

Popular bachelor’s degree and doctorate programmes

Bachelor of Computer Science

Bachelor of Science in Mathematics, Computers, Statistics

Bachelor of Science in Computer Maintenance & Electronics

Bachelor of Computer Applications

Bachelor of Science in Computer Science Statistics

Bachelor of Science Honours in Computer Science

B.E. in Computer Engineering (Bachelor of Engineering in Computer Engineering)

B.Tech. in Computer Science (Bachelor of Technology in Computer Science)

Step 4: Students have many opportunities to establish their professional careers after having earned a bachelor's degree. A bachelor's degree helps students gain expertise that can be applied to a wide array of job opportunities related to computer software programming. After completing a bachelor's degree, individuals choose a postgraduate degree programme in a particular field. After graduating with a bachelor's degree, students could focus on working. But they may be applying for a master's degree programme after successfully completing several years of study.

Popular master’s degree and doctorate programmes

Master of Science in Computer Communication

Master of Science in Computer Science

Master of Science Honours in Computer Science

Master of Science in Operation Research & Computer Applications

Master of Science in Statistics and Computer Applications

Master of Technology in Computer and Information Science

Master of Technology in Computer Science

Computer programmer course:

.NET Programming

Javascript Certification Training

Node.js Training

Python Training

Java Certification Training

Profile photo for Damien Filiatrault

Truly great programmers are rare, but they do have many characteristics in common. Knowing what those characteristics are can help you achieve your goal. I'm familiar with this topics because I run Scalable Path, a freelancer marketplace and after working with over 5,000 developers, I have spotted the attributes I believe many of the best devs have in common.

Positive Attitude:

A great programmer cares about your product. They are positive, willing to go the distance to get the job done and bring their best every day. Although it’s important not to exhaust a developer with frequent urgent deadli

Truly great programmers are rare, but they do have many characteristics in common. Knowing what those characteristics are can help you achieve your goal. I'm familiar with this topics because I run Scalable Path, a freelancer marketplace and after working with over 5,000 developers, I have spotted the attributes I believe many of the best devs have in common.

Positive Attitude:

A great programmer cares about your product. They are positive, willing to go the distance to get the job done and bring their best every day. Although it’s important not to exhaust a developer with frequent urgent deadlines, sometimes this is unavoidable. When you need to bring a product to market or need to ship a certain feature out by the deadline, the great programmer will step up and get the product released whenever possible.

Because they care.

A great developer doesn’t let their ego get in the way of taking feedback.

Communications Skills:

Good communication skills directly correlate with good development skills. A great developer is able to understand problems clearly, break them down into hypotheses and propose solutions in a coherent manner. They understand concepts quickly, or ask the right questions to understand, and don’t need to have everything written down in a specifications document. Great offshore developers usually speak multiple languages coherently and are very comfortable with documentation in English. In the world of technology, English is the de facto language of most documentation and developer interactions. If they don’t speak it well enough, they’ll require interpreters and translators, making their knowledge second hand, and quickly outdated.

Time Management:

Great developers are highly reliable. They have a strong work ethic and show up at meetings on time. An important skill is the ability to estimate the amount of time needed to complete a task, communicating this and delivering on it. Exceptional developers are great at managing their clients or leaders instead of you managing them.

Learning Ability:

Great developers are usually amazing self-learners. They have the ability to learn new technologies on their own and aren’t intimidated by new technologies. They have the ability to pull disparate bits of information and process information on the fly. Every programmer will experience a situation where he or she doesn’t know the answer. Great programmers will find different resources, talk to the right people and find the solution no matter what. The best skill anyone can have is knowing how to learn, and great developers have mastered the skill of self-learning.

There is a clear link between the most talented developers and those that are always learning. Our best and highest paid developers often spend at least 25% of their time working on personal projects and testing new frameworks.

Deep Knowledge:

Great developers have worked with a handful of technologies long enough to become experts and are competent with many. They will hit the ground running because they already know the right technologies. They will follow coding standards and will write code that is understandable and commented where necessary and can be passed on to someone else easily. By combining their cognitive abilities and diverse industry experience, they’re able to arrive at optimal solutions quickly. An experienced developer is well versed in best practices like agile development, task management software (Jira, Trello, etc.), version control (If they know Git, it’s a sign they’ve moved on past older systems like SVN), and working in different environments (local development environment, and working knowledge of deploying applications) so ask them about these things.

Team Player:

Another superb quality of premium developers is their ability to help other developers get better. They offer teammates help when they are stuck, teach new skills to others and write documentation that would help teammates not only in their organisation but the developer community in general.

People that behave like a black box are not good team players.

Passionate:

I have noticed that when someone is passionate about their work they are also likely very good at it.

Aspire to these characteristics and you will be well on the way to your goal!

Profile photo for Jason Martin

Read. Alot.

Not just books about programming and systems, but also source code. It helps to have some mentors, people you look up to who are great programmers, like DMR, John Carmac, Jonathon Blow, Donald Knuth, Fabrice Bellard and so on.

About · Careers · Privacy · Terms · Contact · Languages · Your Ad Choices · Press ·
© Quora, Inc. 2025