4 ms·
This thread has a lot of language suggestions, but I think you need a fun problem to solve. Pick a toy app and work on it. Learn embedded programming with an Ar
by eddieroger 4y ago
This thread has a lot of language suggestions, but I think you need a fun problem to solve. Pick a toy app and work on it. Learn embedded programming with an Arduino. Write an iPhone app to track when you feed the dog. Make a karaoke app for Android. If you pick a project you'll enjoy, the language won't matter. Use whatever is best for the platform. The fun doesn't come with the language, it comes with seeing your project come to life, or others' reaction to the cool thing you made. Every language sucks and every language is the best depending on who you ask. Don't focus so deeply on that part. Solve cool and fun problems.
I've had a long time dream of getting a broken jukebox and gutting it for a Raspberry Pi, but keeping the external interface in tact. I know next to nothing about hardware engineering, and can't write more than ten lines of Python without needing to Google something, but I finally got a broken juke in need of fixing, a multimeter, and a hard drive full of music ready to go. The fun isn't the Python or learning GPIO, it's that eventually I will have a cool retro jukebox with hardware and software I wrote in my basement.
- codazoda 4y agoI did a similar fun project. I created my own slot machine. I made a small shelf like cabinet out of wood, set a TV on it in portrait mode leaning against the wall, added a few lighted push buttons, and dropped a Raspberry Pi inside. I never finished the software side, but I was pretty proud of the looks of the machine.
- bbarn 4y agoSounds like a super fun project. Did you find one with the moving pages for album pictures or with the pink yellow and blue "ticket" like song listings, or? Those are so awesome, I can think of all kinds of fun ideas to retro-mod either.
- eddieroger 4y agoThanks! It is ticket listing kind. It's closed so you can't see the record mech, which is what I wanted, and I will replace song cards with ones I add to the Pi. Then I will add all kinds of hidden ones for giggles because it would be a waste to only play 200 songs. I got particularly lucky in that it came with the field repair guide, which has a solid wiring diagram and sequence that I can more or less recreate in code. My goal is to do the least amount of destruction to it that I can so I could some day replace the broken parts (ironically, the central computer) and have it restored. It being "Computer Controlled" was one of the most appealing aspects to me - there's a light up panel that reads that on the outside. It's an AMI Rowe R-88 if you'd like to see it.
- scubbo 4y agoBig +1 on this. If you're OK with a broader definition of "programming" and have a bit of money to throw around, I've found tinkering with https://www.home-assistant.io/ https://www.home-assistant.io/ to be very satisfying. I got more sense of accomplishment from scripting "text me when I leave the house if I forgot to set the alarm, and turn on the front porch lights when I arrive back if it's after sunset" than I did from months of corporate work, even though the actual _difficulty_ was much lower. I can _see_ the results of my work, and benefit from them most days!
- giobox 4y agoDeploying Home Assistant is largely how I taught myself Docker, Kubernetes etc. Its much easier to learn solving a "real" example. You can learn a ton just trying to do a production grade home assistant deployment - move on to SSL termination at the load balancer with letsencrypt, try different deployment strategies for upgrading the server with zero down time, write custom extensions... etc etc. I've now got a small Pi cluster running k8s to deliver a bunch of services at home, and its all really easy to maintain. I've absolutely used the skills and knowledge gained in my day job too, which is nice. Home Assistant is great to learn a lot of production web app stuff, all you need to get started is as little as the PC you already own, or something like a Pi to host it. As it can solve problems in your actual life, it's rewarding enough to be interesting I've found.
- beamgirl 4y agoI've found that sometimes the hardest issue is getting mentally unblocked enough to find a problem that seems approachable. One of the best ways I've found to prompt you is to start browsing libraries till you find some that imply a goal you might enjoy. My last fun personal project was making a command line AppleTV remote with a lib for doing such. I'd been so burnt out till I saw a random link to the lib, and it just sucked me in.
- jasode 4y ago>, but I think you need a fun problem to solve. Pick a toy app and work on it. I think you've read the op's question too fast and not fully empathized with his situation. He already found a problem when he wrote, "I have a clear idea in mind with some code already in C++ to proof-of-concept it for myself, ..." The bulk of op's words surrounding that goal is asking about the process of coding being fun. But then we get several (well-meaning) advice to just focus on the end goal being fun rather than the coding process being fun. Yes, that's a valid perspective -- but a lot of people also require the process itself to be fun too. E.g. Let's say a programmer wants to code a custom music library manager: - John wants to use Lisp because having a REPL for quick iteration and feedback loop is "more fun". - Jane would rather use Python because having a bunch of 3rd-party libraries for lots of tasks is "more fun" than coding a lot of boring low-level tasks from scratch. Advising people to have a sort of zen enlightenment of only caring about the final product and being totally detached from the process is unrealistic for many programmers. It's a perspective that may work for you but for many others, the particular tools do matter in terms of joy. In the op's case, he wished that there was a tool that was cross-platform, with easy multi-threading, no incidental complexity, etc. (To answer op's question, there isn't such a tool that meets all requirements.) We often see variations of the lament: "I wish programmers would quit focusing on particular programming languages. They're all Turing Complete. Just pick one and get on with it." That's true if the product is corporate project. In that case, the employee needs to suck it up and just use whatever (not-so-fun) programming tool to get the job done. But personal projects like the op's question can try to look for alternative coding environments that are more fun to use. An analogy in woodworking was illustrated by 2 different shows on PBS: - Norm Abrams (The New Yankee Workshop) used power tools to build his projects. - Roy Underhill (The Woodwright's Shop) used hand tools to build his projects. Roy Underhill likes hand tools because power tools are noisy. On the other hand, Norm Abrams uses power tools as they're fast. Neither are wrong. Both can craft a chair but the tools still matter. A lot of woodworkers can't just detach themselves from the usage of tools and only focus on the final product. The choice and use of particular tools is a core part of the joy.