11 ms·
Time spent programming is often time well spent
- arbol 6y agoAn old colleague tried to convince me that I shouldn't write my own job queue last night because "it's all handled in the cloud". It's things like this that make me a better programmer whilst also allowing me to run software that does exactly what I want.
- blandflakes 6y agoI think implementing patterns that are "solved" in SAAS or FOSS is a really awesome way to learn. I grow tired, however, of convincing teammates that no, I don't want to support their homegrown HTML templating library in production, having to worry about bugs or security vulnerabilities. Editing to really affirm that I agree especially with personal projects. I have a lot of projects where pieces I want to build approximate some percentage of something like AWS Lambda, but I want to do a custom version because it's more fun and will make the project easier, since I'm not planning for anybody else to ever maintain it.
- commandlinefan 6y ago> I don't want to support their homegrown HTML templating library in production On the flip side, that's how projects like Spring, Spark, jQuery, Angular, React, Kafka, Cassandra and Mongo came to be: somebody did something that somebody else was always doing, but a little bit better, and ended up making a career out of it.
- blandflakes 6y agoSure! And I think the degree to which you have the "room" to do that in your job depends on the company. I'm not here to spend my novelty budget on a routing framework that can't handle optional parameters.
- colejohnson66 6y agoI see this on HN a lot. The “what the purpose of writing this project? X and Y would suit your needs just fine.” The problem is, you can’t learn unless you do. So even though X and Y may have suited their requirements, they can’t truly learn how X and Y work unless they write their own version.
- knicholes 6y agoSo maybe write your own version to see how it works, then use the already existing, time and battle tested solution.
- sanjay_316 6y agoAnd in exceptional cases, your similar program will be just different enough in a few key ways that it will open up new use cases. Redis is just a hashmap (and LRU). A load balancer is also just a hashmap (and routing). There are plenty of interesting questions about which particular hashmaps to use in each case.
- sumtechguy 6y agoAlso dragging in a second library also means you are pulling in their issues too. Sometimes a quick little function is all you need. Sometimes though it is so wildly better than what you have it is worth doing. It is about time and cost. One project I wrote a whole subsystem to do a particular thing. On a revision of the OS they had the same thing but way better. Tossed out every line of code I had written and used that. But without writing that thing I would not have know if it was worth it or not.
- sanjay_316 6y ago> One project I wrote a whole subsystem to do a particular thing. On a revision of the OS they had the same thing but way better. Tossed out every line of code I had written and used that. But without writing that thing I would not have know if it was worth it or not. This sounds like it could be a good story to learn from if you wrote it out.
- intrepidhero 6y agoPerilous to us all are the devices of an art deeper than we possess ourselves. - Gandalf, TTT, JRR Tolkien.
- spaetzleesser 6y agoTotally agree. Implementing something yourself also helps you better understand how established similar systems work. It also takes out the “magic” from things. For example when you look at a compiler first, it seems incredibly complex. But once you write your own simple compiler you can quickly see that a compiler consists of components that can be understood .
- trustfundbaby 6y ago"We have to reinvent the wheel every once in a while, not because we need a lot of wheels; but because we need a lot of inventors." - Bruce Joyce
- larrywright 6y agoI’ve worked on a lot of personal projects over the years that were never finished or were quickly abandoned. I used to feel bad about this, feeling like I had wasted my time. But then I realized that I learned a ton by doing all of this work. Often I’d have a need for what I learned a year or two down the road. So now I take the attitude that if I learn something, time spent programming is never wasted.
- MrPowers 6y agoAs a corollary, time spent answering StackOverflow questions or blogging is also a great way to learn. Writing code & the blogging about it is the best mix for me.
- cpb 6y agoFor blogging, how do you overcome the perception that you have nothing new to add to the discourse?
- Jtsummers 6y agoShift your focus. You're not writing for others (strictly) but for yourself. Express your ideas, thoughts, what you've learned. I write a lot, but don't publish, and it's for that purpose. The act of writing is an act of communication, which forces you to formulate your ideas into more coherent forms (and to try and remove ambiguity). If you've just learned a topic, or are learning it, and want to write about it, it makes you think about how to express what you've read or studied (ideally try to do it from memory versus pulling up the references you've been studying). It's similar to the benefit of teaching, my classmates and I always learned more (in undergrad) by teaching each other in a quasi-seminar format in the computer lab during our study sessions. Someone would naturally take over after a bit as the "teacher" for the session as they found that communicating what we were studying to the rest of us clarified their ideas. Blogging can be similar.
- waterhouse 6y ago
- yboris 6y agoI spent countless hours on my side project Video Hub App https://github.com/whyboris/Video-Hub-App https://github.com/whyboris/Video-Hub-App At first it was a rough implementation to see if the tech stack could do what I want; later it was "let's polish to make it usable by others"; later it was "I need to make it good enough that paying customers would be very pleased". Numerous times I kept wanting to just call it finished, but there were always cool features to add. I've learned a great deal, and it's immensely satisfying to work on. I've explored face recognition and server capabilities (learning a lot and having a good time). And eventually will likely add both features to the released product. I'm sure there is great value in small exploratory projects. But I really hope that people polish things up a bit more (at least a screenshot on the GitHub page!) and share it with the world in a more-finished form. There's value in that too. Cheers! https://videohubapp.com/ https://videohubapp.com/
- chungus 6y agoThis looks awesome. And Batman Beyond is so good.
- ogre_codes 6y agoWorth following to the original story on Dr Drang's site: https://leancrew.com/all-this/2020/08/rss-and-the-pleasure-of-not-thinking/ https://leancrew.com/all-this/2020/08/rss-and-the-pleasure-o... Related. Such a pleasure to read a site designed to be read with a link that works the way web links work. So many articles are on sites filled with utter garbage, flashing adverts, notifications, and annoying newsletter requests that hitting simple links is just relaxing. This whole topic made me realize perhaps I should set up an RSS feed with sites like Dr Drang's and this one just so I can have regular access to good non nonsense content.
- jnknjknkjn 6y agoDavid Graeber the anarchist antropologist who recently died had the same argument for UBI as a way of unblocking society from the stagnation the bureaucratic system has imposed on humanity. https://www.youtube.com/watch?v=MN9S0HD8VH8 https://www.youtube.com/watch?v=MN9S0HD8VH8
- cwoolfe 6y agoI've often thought this of IoT devices in my home. Because I'm a programmer, it would sometimes be easier (and more fun) to tweak the devices to suit my needs vs. same amount of time doing product research. As an aside, Does anybody know of an open-source IoT ecosystem?
- abright 6y agohttps://www.openhab.org/ https://www.openhab.org/ is a pretty established one (written in Java). Although if you're interested in one that isn't established and is very open to tweaking I've just refactored my home automation system and if other people were interested it would help my motivation to keep working on it (written in Go): https://github.com/alittlebrighter/igor https://github.com/alittlebrighter/igor
- bostonvaulter2 6y agoI've heard good things about Home Assistant although I haven't tried it yet: https://www.home-assistant.io/ https://www.home-assistant.io/
- Wump 6y ago> I program because I like to, and because I can. Well said! There's a joy to be found in doing things for the sake of it.
- Ericson2314 6y agoI spend a lot of time working on projects about the way we program, because it could be a lot more fun. Those projects are not always fun, so I definitely want them to succeed and it's not about the journey.
- gnu 6y agoChristian Kellermann wrote this nice "Code it yourself Manifesto" [0] that always rings true with me. It is more important now than ever before. I believe OP is talking more or less the same thing. [0] https://pestilenz.org/~ckeen/blog/posts/ciy-manifesto.html https://pestilenz.org/~ckeen/blog/posts/ciy-manifesto.html
- ilaksh 6y agoI did feel disappointed after spending around two years of evenings and weekends building a 3d libretro front-end with an extensive Lua API (vintagesimulator.com) and then having the people in r/lua basically tell me they were not going to download my "malware" (unless I disclosed the source code) and I should kind of go to hell when I complained about the way they responded to it. But I did enjoy building it. And I sort of console myself with the idea that I could resurrect the project in the future if I port it to Godot Engine and/or set it up for VR.
- a1369209993 6y ago> they were not going to download my "malware" (unless I disclosed the source code) That's a competely reasonable response (assuming you were not in fact disclosing the source code). I assume everyone on r/lua uses pure-FOSS GNU/Linux systems that they compiled themselves and have javascript (and parts of CSS) disabled for all their web browsing?
- summitsummit 6y agoseems like something someone in this community would upvote
- qu-everything 6y agoNot really programming, just scripting. I thought I liked programming, but in the end I just like doing small scripts, not maintaining garbage apps
- DreamScatter 6y agotry out the julia language