6 ms·
I’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 w
by larrywright 6y ago
I’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> It's similar to the benefit of teaching I would throw in "rubber duck debugging" as another similar activity known to produce similar results.
- MaxBarraclough 6y ago> how do you overcome the perception that you have nothing new to add to the discourse? Perhaps make a tutorial? There are various neat tools (and combinations of tools) that lack approachable documentation. Won't be ground-breaking, but might be helpful and worth reading.
- MrPowers 6y agoGreat question. My blog is to help people answer questions they Google. I'm the top result for searches like "spark partitionby". The content isn't anything new. They're just useful posts for people that are busy and Googling for answers. Writing the blog post is what forces me to actually learn about the topic and commit the concept to memory.
- groby_b 6y agoUnless you're at the absolute top of the field, it's very unlikely you'll ever add something new to the discourse. That's not a problem, though. There are two answers I can see: The first is to keep learning, and leave breadcrumbs for the people who come after you. And maybe, at some point, join the top of your chosen field. It'll be a while, but the breadcrumbs are incredibly valuable to anybody coming after you. The second is both more interesting, and harder: Find a couple of fields that you're good in. Not an expert, but good. Then write about the intersection. That is almost by definition a much smaller field, and you're much more likely to be at the top of that field. (For a made up example, how many people are really good at music, systems thinking, and gardening, and write about that intersection?) The things you can generate in that particular field are adding to that particular field - and more importantly, they likely contain unfamiliar insights to people who are only fluent in one of those fields. You've added something new to both your field, and their discourse. Most of us probably alternate between 1) and 2), and only very few of us will ever be recognized experts in a well-defined field and further that field through our expertise. That's OK. We're still contributing to the discourse, we just target slightly different people.
- jniedrauer 6y agoExamples of common patterns add incredible value. A 1000 page document may contain everything you need to know to implement a protocol, but a well written example will be far more useful for most.
- larrywright 6y agoI suffer from the same problem. Something to consider is that we benefit from having a diverse set of materials on the same topics. Maybe you explain something a little differently than someone else does, or in a way that resonates better with a certain type of person. Julia Evans[1] is a great example of this. For much of what she publishes, she’s not explaining something that you couldn’t figure out from reading the man pages or a lengthy tutorial, but her work is still hugely valuable because it’s concise, and visual. The other thing to remember is that writing is just as much for you as it is for others (maybe even more). The act of writing down an explanation of how to do something or how something works ensures that you understand it was well as you think you do. I don’t publish nearly as much as I should, but I often write things down in a Markdown file because it helps me organize the thoughts in my head and lets me identify any gaps in my knowledge. [1] https://jvns.ca/ https://jvns.ca/
- munificent 6y agoTrust your reader to decide what's helpful for them. If you never put it out there at all, you never give them that option.
- jariel 6y agoExplain something to yourself or someone you are working with so that they understand it. Now just edit a little bit - and that's an article.
- msie 6y ago- That's for the reader to decide. - If you're worried about other people's opinion then blog anonymously. - Many people are blogging without being worried about being redundant. - Blogging on the Internet is like spitting in the ocean. You would be lucky to get some pageviews.
- non-entity 6y agoUnfortunately most of the things I've learned from my incomplete side projects are useless. Some may make for interesting discussion sometimes, but ultimately nothing that will help me in any tangible way.
- logicOnly 6y agoI got my first paid programming job after 12 years of side projects. Maybe it's too soon. After 6 years of programming I had made pretty much nothing useful.
- jniedrauer 6y agoI've been writing code professionally for quite a while now. I'm not trying to land my first coding job. The vast majority of programmers working on side projects are already established in the industry. I've learned a few novel things from my unfinished side projects, but I've never really used them in my day job.
- idrios 6y ago> The vast majority of programmers working on side projects are already established in the industry. I strongly disagree. There are teenagers writing custom skin mods in Minecraft by Googling and copy/pasting. There are non-tech professionals making hello world android apps but are too novice or uninterested in getting a professional developer position. There are photographers who write plugins in Photoshop to create copies of their photos at various resolutions. You won't find any of them making github contributions but they're there. And a lot of the skills you learn from side projects are internalized without being able to explicitly state it, like getting a feel for conventions in the framework or language you're using, or how much abstraction to use in your solution.
- yetihehe 6y ago80/20 rule says that 80% of what you learn will be useless. But you don't yet know which 20% is usefull.
- 6y ago
- earthboundkid 6y agoThere's a joke that every web developer makes a personal page by first writing a custom bespoke CMS over a couple of months and then only using it for one "Hello, World!" post, but honestly, I've found that's been a great use of time for me. When I do real work projects, I've ended up saying "Didn't I solve this for my blog a year or two ago?" and then I dig up the code and reuse it. It's a great learning experience, and I think every web developer should do it.
- larrywright 6y agoExactly. If I’m curious about a technology, no matter what it is, I know that if I build something with it or even just set it up myself and play around with it, I will learn a lot more than if I just read the README or a tutorial written by someone else.
- munificent 6y ago> There's a joke that every web developer makes a personal page by first writing a custom bespoke CMS over a couple of months and then only using it for one "Hello, World!" post I might be able to top that. About eleven years ago, I went through this process: 1. I wanted to redo my web site. But I hated using PHP which is all my shared host allowed. 2. Maybe I'll design a little programming language that transpiles to PHP. Then I can program my site using that. 3. I have the parser working and producing an AST. You know, writing a little interpreter that walks that AST is practically trivial. I'll do the PHP backend later, but let's give that a try. 4. Whoa, I have a working language! Neat! But, man, that tree-walking interpreter is slow. Maybe I could translate the tree to bytecode and write a little bytecode VM... 5. Bytecode is so fun! But I'm relying on the .NET VM for most of the heavy lifting like the GC and object representation. I wonder how that stuff works. Maybe I should try writing a little VM in C++... 6. That wasn't as bad as I expected. I learned a whole bunch. Maybe I should write some of this down. So, uh, now I work at Google on a programming language and wrote a textbook on building interpreters [1]. I never did finish that website. (I just ported my blog to Jekyll at some point instead.) [1]: http://craftinginterpreters.com/ http://craftinginterpreters.com/
- 6y ago
- spaetzleesser 6y agoLI take the attitude that if I learn something, time spent programming is never wasted.” That’s my philosophy now. Always try to learn new stuff and how to do things better. Even if it doesn’t work out, at least you know why.