I have been a professional programmer for over 20 years. I have learned tricks, made mistakes, and gained experience. In no particular order, here are 50 ways to improve as a programmer:
- Write lots of programs. Every program you write, no matter how small, adds to your experience. This practice enhances your understanding of programming concepts.
- Make programming your hobby. Programming on personal projects builds enthusiasm and passion. If you like what you do, learning is easy.
- Search Stack Overflow for answers. If you have a programming question, you will likely find the answer on Stack Overflow. Be critical of answers but use them as learning opportunities. When you are ready, answer questions too.
- Get a good book and work through the examples. Good programming books have plenty of content, organized for learning. The Deitel books are very thorough, with lots of examples and explanations. If you are a beginner, take a look at The Super Simple Programming Book.
- Learn one way, ignore the rest. Programming languages often provide more than one way to accomplish the same task. For example, there are several ways to increase an integer variable by 1. Pick one way that makes sense and spend time learning different concepts. You can learn the other ways later.
- Focus on the basic programming concepts. When you are starting out, the fundamentals are most important. Learn about data types, input/output, selection, repetition, etc. Focus on the basic programming concepts before trying to learn a new language.
- Find a mentor. Connect with a colleague, social media contact, or anyone who has technical expertise that you can learn from. You will learn more from a mentor than you will from any book or website.
- Participate in coding challenges and events. There are lots of coding challenges and events that are fun ways to practice programming. Twitter has #100DaysOfCode. Code.org has Hour of Code. The Advent of Code is a really fun programming challenge that happens during the first 25 days of December. Coding challenges use fun to motivate you to practice coding.
- Take a free programming course. Coursera has excellent computer science courses from top universities. There are similar courses on Udemy. MIT OpenCourseWare publishes course materials for some computer science courses.
- Use code linters. Code linters provide immediate feedback for your programs. The online W3C Markup Validation Service checks web documents for validity. PEP8 Online is a linter for Python code. There are many linting tools available.
- Take advantage of static code analysis. SonarQube offers static code analysis of programs. It helps you write cleaner and more secure code.
- Participate in code reviews. Participate as both an author and a reviewer. Do not fear failure in a code review. We all make mistakes. And mistakes are excellent learning opportunities for everyone.
- Watch YouTube videos. There are lots of YouTube tutorials, explanations, and lessons on almost any programming topic. These videos are easy ways to learn programming simply by watching. Here are some YouTube videos on Node.js.
- Solve Project Euler problems. Project Euler has lots of mathematical and computer problems to solve. The website lists how many people have solved each problem.
- Participate in Google Code Jam. Google Code Jam is an annual, worldwide coding competition. The website lists past and current problems. You can enter the competition or just practice for fun.
- Use an IDE. An integrated development environment (IDE) is a programming tool that helps you create, edit, execute, and debug programs. IDEs find and highlight errors while you type your programs. They suggest corrections. An IDE also puts an interactive programming reference at your fingertips.
- Go back to school. If you have the means, take a computer science course at your local college or university. Pursue a bachelor's degree or certification to certify your computer science knowledge.
- Consider a coding bootcamp. Coding bootcamps offer specialized training on specific programming skills. The skills are often in high demand. Just be careful when selecting one. Not all coding bootcamps are equal, and most are expensive.
- Create a programming blog. To learn something, it helps to read it, hear it, and write it. Writing about your programming experiences in a blog will enhance your learning. It will also motivate you to learn more.
- Work through online tutorials. There are many excellent online programming tutorials. Some are simply for reading. Others are interactive. The W3Schools online tutorials are simple, straightforward, and interactive. Codecademy has excellent interactive tutorial on different programming languages.
- Participate in programming forums. Read and respond to posts in programming forms. The interactions there are excellent learning opportunities. For example, JavaRanch and Java Forums are popular online communities for Java programmers.
- Teach programming. Teaching others how to program is a very effective way to enhance your programming knowledge. Tutor university or local students. To teach programming, you must prepare lectures, create examples, and answer questions. This forces you to really understand programming. Even volunteering to teach programming has similar benefits.
- Create your own website. If web development is your passion, learn how to develop your own website. Personal projects like this one give plenty of motivation to learn and code.
- Participate in coding interviews. Many companies require coding sessions or take-home assignments as part of the interview process. These activities provide excellent learning opportunities and real-world practice. You must also prepare and learn ahead of time. Coding interviews are valuable, even if you do not get the job.
- Learn from open source software projects. Open source software projects on sites like GitHub and GitLab offer excellent examples to learn from. Many of these software projects are popular in the industry. Contributing to these open source projects offers more programming practice.
- Follow coding standards and style guides. Coding standards are best practices that improve code. They make code more readable, maintainable, and more. Google publishes coding standards and style guides for a variety of programming languages.
- Become a freelance programmer. If you have the time, offer your programming expertise as a service. There are many websites where you can find freelance programming assignments. This is a great way to practice, while earning a little extra money.
- Join a programming community. Find programming communities in your area. There are many online programming communities at LinkedIn, Facebook, and other social media sites. These are places where you can interact with people who share the same passion for programming.
- Get a job. Get a programming job, any programming job. Nothing beats industry experience and learning.
- Volunteer your programming skills. Every industry has a need for programming skills. Many cannot afford to hire programmers. There are plenty of volunteer opportunities for programming. A local school, club, or organization may have programming opportunities that you can assist with.
- Write plain vanilla code. Yes, built-in functions, frameworks, and external libraries make coding easier. But there is a lot to learn from coding from scratch. For example, try coding with vanilla JavaScript instead of jQuery. Try using the plain array construct instead of the Java ArrayList class. Coding from scratch will force you to think more and write resourceful solutions. It will also make you appreciate the many useful external libraries out there.
- Do not reinvent the wheel. For important programs, do not reinvent the wheel. For specific programming tasks and logic, search for an existing solution. These solutions are often tried and tested. For example, npm is an online repository of Node.js libraries. PyPI hosts external Python libraries. Be critical when selecting external libraries for your programs. Some are better than others.
- Attend a programming conference. Programming conferences bring developers of all levels together for presentations, demonstrations, and other learning opportunities. The Grace Hopper Celebration is a popular conference that celebrates women in computing. Google I/O is another popular developer conference. There are many other programming conferences. Some offer virtual attendance now. If not, be sure that they offer proper social distancing if you attend.
- Join a professional organization. Professional organizations like the Institute of Electrical and Electronics Engineers (IEEE) and the Association for Computing Machinery (ACM) offer collaboration opportunities, journals, conferences, groups, and other opportunities to learn more about programming. These organizations charge a membership fee, but they offer student discounts.
- Write a book. There is an endless number of topics for programming books. No matter what your programming level, there is a book topic for you. Self-publishing sites like Amazon Kindle Direct Publishing make it easy to publish and sell your book. Writing a book will force you to really learn the material, create examples, and test your programs.
- Program a robot. What is more fun than seeing your program come to life. Beginners and experts can program robots to complete tasks. The Sphero BOLT is a programmable plastic orb that features sensors, movement, and an LED display. LEGO MINDSTORMS is another programmable robot kit that has advanced capabilities. Programming robots makes programming really fun.
- Visit Code.org. Code.org deserves its own spot on this list. The website is dedicated to learning, teaching, and promoting computer science. There are online coding activities for beginners, coding statistics, inspirational videos, and more.
- Try Alice. Alice is a 3D teaching tool for computer science. It makes learning computer science visual and fun. The late Randy Pausch oversaw development of Alice at Carnegie Mellon University.
- Learn Git version control. Although this does not specifically relate to programming, you will undoubtedly use Git to maintain versions of your programs. Online Git repositories such as GitHub, Bitbucket, and GitLab are powerful tools for collaborating in software development. However, they are excellent for individual use too. Many developers use GitHub, for example, to host online coding portfolios.
- Embrace real-time communication. This is another tip that is not directly related to programming. Real-time communication tools provide immediate feedback and answers when working with others on programming tasks. Slack is a very popular real-time communication tool that offers persistent text, voice, and video chat. The tool allows you to create public and private channels for different topics. It allows threading of conversations for more organization.
- Code on the go. Your mobile phone is also a computer. Why not code on the go? QPython is a Python interpreter for Android phones. Python2IDE is on iOS phones. With those apps and many more, you can practice coding right from your mobile phone.
- Code without help. Take a programming task and write a program for it without searching online or using assistance from an IDE. See if you can code from memory. This type of coding practice will force you to commit important concepts to memory. It is also good practice for coding interviews.
- Refactor your programs. Learn how to refactor your programs. Even if a program produces the correct outputs for all the possible inputs, it may still have room for improvement. For example, make it more maintainable, more readable, and less complicated.
- Learn other programming languages. Once you have a good foundation of the basic programming concepts and a strong understanding of a given programming language, it may be time to branch out. Learning another language can increase your understanding of programming languages in general. It is helpful to see how different languages implement the same programming concepts or offer new features. For example, the Java programming language improved on C++ by addressing memory leaks.
- Program for art. Programs are not just for business. Programs can create art. With random behavior, graphics, and processing, programs can create beautiful output. This takes the passion for programming to a whole new level. Python turtle graphics and HTML Canvas graphics are two ways to create simple and complex art with programs.
- Have the right attitude. Be humble. You cannot know everything about programming. If you think you do, I promise there is someone who knows more. Programming is an endless learning loop. Accept that you do not know, and you will know.
- Leverage public APIs. There are many public application programming interfaces (APIs) that you can connect to with programs. Twitter, YouTube, and Google Maps are just some APIs that you can develop against. You can create impressive software applications by leveraging these powerful APIs in your programs.
- Assess your programming skills with Soloway's Rainfall problem. Soloway's Rainfall problem is a problem that tests programming skills for introductory computer science students. If you can complete this programming task, you have a good understanding of programming fundamentals.
- Learn from console input and output. There are fancy websites and graphical user interfaces. However, do not ignore what simple programs can teach. Programs that accept input from stdin and write output to stdout can be powerful, complicated, and full of functionality. These programs have a lot to teach.
- Learn assembly language and computer architecture. When a program executes, it uses computer resources. Understanding how computer memory, the central processing unit (CPU), and other computer components work will help you understand how a program works. Assembly language is a low-level programming language. Its instructions correspond to machine code instructions. An IF-ELSE statement in C may require twice as many statements in assembly language. Understanding low-level assembly language and computer architecture will explain how a program interacts with the computer, teach you to write more efficient code, and make you a better programmer overall.
Whatever you do, keep practicing programming! Most of all, be safe, practice social distancing, and be well!
No comments:
Post a Comment