今日推荐英文原文：《How to Come Up With Programming Project Ideas》
今日推荐英文原文：《How to Come Up With Programming Project Ideas》作者：Jun Wu
How to Come Up With Programming Project Ideas
Hack, tinker, and learn from side projectsOne of the best ways to sharpen your programming skills is to work on side projects. Successful new programmers often have more than a few personal projects on their resume. Programmers who progress in their careers have a higher chance of working on interesting projects. In addition to the increase in pay, these programmers level up their skills by working on personal projects.
I interviewed five successful startup CEOs in January, and almost all of them had one thing in common. They were tinkering on the side with their own side projects. Eventually, one of their side projects became a business. This is how they began their startup journey.
Not all of us will be CEOs or startup founders. But tinkering on the side allows you to move beyond your day job and see the much bigger picture. Learning new technical skills is a given. Showing people your side project is also a great networking tool. Within your existing network, if you show people that you have passions, others will resonate with your ideas.
Who knows? You may just one day land your co-founder in the process.
You Learn New SkillsI’ve always tinkered on the side in every career I had. Many of my passions were pursued half-heartedly, but they were stepping stones to other passions. Through the years, I realized that the process of tinkering can teach you many lessons.
- Programming Languages — Tinkering allows you to learn in depth about the programming language that you’re using at work. For instance, if you are a back-end programmer on large enterprise applications, why not work on a web development project in your spare time? Learning about web infrastructure, load balancing, handling threads, etc., will allow you to apply that knowledge when you need to tune your back-end processes.
- New Programming Languages — One of the best parts about tinkering on the side is learning a new programming language. If you are a Python programmer, why not learn Julia or Haskell? Languages are built for specific purposes. Learning a new one will allow you to see why Python does things in a certain way. It allows you to compare the features of programming languages and understand the design of specific programming languages. In turn, you will learn to program Python better because you know why things are done a certain way.
- New Frameworks — Similarly, learning a new programming language often coincides with learning a new framework. It will open up your mind.
- Usage — When you are tinkering to solve your problems, you will often think more like a user. This way, you can see how to develop applications from the user’s point of view.
- Failure, Patience, Perfectionism — Without deadlines, you can engage in the practice of sharpening your character. Many programmers don’t realize this, but the programmer with a strong character often is the one that succeeds. As a beginner, learning to deal with failure, having patience with yourself, and learning to deliver regardless of perfection are just some of the skills you’ll pick up by tinkering on the side. There’s nothing like having one of your friends tell you that your three-month project sucks. But that project still allowed you to learn new skills. Who knows? If you keep at it, an investor might end up loving it.
Elements of Good Project IdeasI have project ideas all the time. But the good project ideas are the ones that I end up pursuing for months on end. This is the framework I go by when picking good project ideas. The way I see it, every good project idea has the chance of turning into something more.
The starting point of the project is as important as the journey itself. You want to orient your journey by the correct compass. For me, my compass is always applications in the real world. I don’t program just for myself. I program to use my skills to solve some problems.
Fun — First and foremost, are you having fun? Going through life clocking in from 9 to 5 can get repetitive at any job. Are you having fun in your weekend projects? I don’t sit in front of my computer if I’m not having fun on my weekends. You shouldn’t either.
Solve a problem — What is the one thing that you want to improve in your life? How can you develop a product to solve that?
Provide value — Providing value with your product is one thing. But is the project providing you with value? Are you learning new skills? Are you gaining new information?
Starting from scratch — Often, programmers like to start from scratch. Can you google and see if anyone in the community has developed a project similar to yours? Not starting from scratch means time saved.
Build to keep — Many programmers don’t think of side projects as anything that they want to keep. But good side projects can be turned into startups. You want to build and design it so that you can keep it. Side projects can generate side revenues. You’re investing in side projects.
Start simple — Every project I’ve ever started was so simple in the beginning. You want to concentrate on just one idea and one functionality. Think microservices. Take the workflow you want apart. Just automate one piece of the puzzle.
Synergy — You’re a programmer. But who are you as a person? When you have synergy between who you are and what you do, now that’s the recipe for a good life. Create projects that you’re passionate about because they align with who you are as a person. You can also create synergy between work projects and side projects. Once I wrote some functionality to solve one of my problems. Later on, I used the code to apply to a work project as well.
Places to Find IdeasIt’s always good to see if other people are working on the idea that you’re about to build. The best place to look for project ideas remains social media channels and blogging platforms such as Reddit, Medium, Twitter, and more. I get inspired by seeing other programmers develop their passion projects. It’s good to search on Google. You can also search in other places:
- Idea Machine