6 ms·
How to learn hard things in tech
- tempxyz 4y ago
- dodyg 4y ago>Start with the smallest working example —it doesn’t matter where this comes from, it could be a website, blog, the documentation for the technology, a friend or coworker, it could be from anywhere. This is your basic working example. It’s the baseline for building further knowledge. This is the main idea behind over 400+ micro samples I created for ASP.NET Core https://github.com/dodyg/practical-aspnetcore https://github.com/dodyg/practical-aspnetcore
- abdusco 4y agoIs there a similar resource for golang? One that goes over things you need when developing for a cloud native app, for example. There's gobyexample.com, but it contains usually basic stuff to get started with the language.
- rschachte 4y agoRead the book Distributed Services in Go. You implement a complex micro service oriented commit log like Kafka. The code is beautiful and the author created Kafka.
- jacquesm 4y agoThat's a fantastic piece of work.
- adnanc 4y agoIncredibly impressive work
- jxm262 4y agoI don't even work nor have much interest in ASP.NET Core , but I just starred your repo and plan to read through it. First time I've seen such a well put together list of code samples for a language. Would love this in other languages
- lordnacho 4y agoIME the hard thing is not something that there's accessible examples for. If there's a tutorial or an example project, you'll figure it out eventually. The thing that's hard is something like how to make a project maintainable. You have to have the experience of screwing it up over a long period of time, feeling the pain each time there's a bug to find or a new feature to implement. You won't find a tutorial in how to do this, because the pain is a necessity to learning.
- livinglist 4y agoCan’t agree more! It was until I started my first full time job when I realized how ugly and disorganized my code was… I stopped maintaining one app of mine which I really like and still take pride in only because the codebase was a disaster…
- xudong963 4y agoMaybe you should continue to maintain the codebase and make it elegent, then you'll learn more.
- blowski 4y agoYes, learning what syntax you need to write to make something execute is knowledge. When to use that approach is wisdom. My biggest challenge is recognising that, having learned a particular approach, it doesn't need applying everywhere. For example, just because I know how to configure Kubernetes, it doesn't mean I need to host every application with Kubernetes.
- chii 4y agoKnowledge is information you can recall. Wisdom is knowledge you know how to apply.
- koinedad 4y agoYeah there’s definitely different types of hard things that don’t fit this
- code_biologist 4y agoLove the link to https://slowlearnerclub.com/ https://slowlearnerclub.com/. I'm definitely in the club.
- WaffleIronMaker 4y agoKinda sad that they didn't go with https://slowlearner.club https://slowlearner.club
- dhab 4y agoOne can forgive slow learners for that ;)
- alexanderdavide 4y agoI can only second learning from documentation rather than using (video) tutorials or blog posts. If you're strong in reading and gaining knowledge from documentation, you will generally be able to decrease your time to create working solutions. The reason is that you get faster in finding the information you need and become independent of the availability of explanations by other developers. I'd only consult other explanations if the documentation is poorly written or my way of using the software is uncommon and I'm looking for opinions or alternative solutions.
- deleted 4y ago[deleted]
- hkon 4y agoIs anyone learning by not doing a variation of this?
- phforms 4y agoI am also self-taught and mostly learn by the same process described in the article. Playing around with small, isolated experiments and observing the behaviour of the system is essential to how I understand new things. But I would like to add that getting a high-level overview also helps me to gain a clearer and better integrated, more contextual understanding. This is especially important when I learn “hard” things (although this is a very relative term), since usually those things have a lot of unknown unknowns that often reveal themselves in this process. That is why I like watching talks about the subject, reading articles and opinions, etc. which are more related to the conceptual stuff and the thought processes behind it. Usually I will then build a concept map and connect things I know that relate to the subject (I like using a PKM tool like TheBrain for this).
- xupybd 4y agoI'm trying to learn category theory. It's not the kind of thing you can learn the way this article suggests. I find learning new abstractions rather difficult especially at the level of category theory. If anyone has any tips I'd love to hear them.
- Jensson 4y agoHave you studied abstract algebra first? Category theory is an abstraction level above abstract algebra, so the normal way to learn it is to first get a solid foundation in abstract algebra.
- xupybd 4y agoI have not. Thank you I'll start learning that first.
- quickthrower2 4y agoIn the same way that being an athlete is a step up from using a PT the gym: It is a very big step up. Probably this would be your career.
- 363849473754 4y agoAs Jensson recommended I would learn abstract algebra first to understand concrete examples in category theory. If abstracts algebra is too difficult then learn introduction to proofs before continuing with abstract algebra. Try doing problems and posting them online to have them checked. Currently you can use discord, reddit, math stack exchange etc Don’t worry about rushing it. Everything builds on itself. For instance once you rigorously study introduction to proofs you’ll see the same sort of proofs again when you begin studying abstract algebra and will already be familiar with the concepts.
- anonymousDan 4y agoAny good resources for proofs and/or abstract algebra?
- omega3 4y agoWhen I encounter something new and hard I try to find a conference presentation around this topic. I'm guessing public speaking in a time constrained format really forces speakers to prepare well and provides the best time/information balance. Even better if there are questions from the audience that dig deeper into the why questions.
- pca006132 4y agoPerhaps I'm a slow learner, but it is really hard for me to understand something just by watching a conference presentation. I can usually get some basic idea about the topic, but as soon as it gets into the technical details, I am always lost. I can only learn by reading the slides/notes, typical talks are just a bit too fast for me.
- mnahkies 4y agoI've found the value I get is more in the exposure to ideas or projects I hadn't otherwise heard about, and a jumping off point to learn more. For example I first heard about wireguard at a conference talk
- liamYC 4y agoI second that, a super quick overview I find useful. The Fireship YouTube videos which explain things in”100 seconds” are great
- kebsup 4y agoA few times when I was working with a new technology in a project, I've found it extremely useful to set it up in a completely clean project, learn everything and proceed from there. I have seen people who tried to read the docs and jump straight into implementing stuff in the existing code base struggle with the basics.
- kingkongjaffa 4y agoMy hard thing right now is how to layout a modern project in terms of folder structure, how big should files be, where to put things. Separating gui from app, nice clean architecture. I’m enamoured by the concept of functional core imperative shell but I’m struggling to see how to refactor my own projects to be like that. (In python if it matters) Would love screencasts, books, blogposts, other resources that cover this kind of intermediate “working on the code” not working “in the code”
- silicon_wally 4y agoI can recommend Architecture Patterns with Python [0] to learn how to refactor code in this way. I don't know Python but I found the examples to be relevant to many other languages as well! [0]: https://learning.oreilly.com/library/view/architecture-patterns-with/9781492052197/ https://learning.oreilly.com/library/view/architecture-patte...
- Scientificx 4y agoCheck out this book Grokking Simplicity Taming complex software with functional thinking by Eric Normand
- georgeoliver 4y agoThe problem I find is that there are two kinds of hard things in tech, things that are actually hard, and things that people make hard, and you have to figure out which is which.