3 ms·
TL;DR: Just start. I've this too. When I learn something new like a language I often want to do it right, like be "pythonic" when learning Python. It can take
by OrangeTux 11y ago
TL;DR: Just start.
I've this too. When I learn something new like a language I often want to do it right, like be "pythonic" when learning Python. It can take long for me to write some simple piece of code because I'm constantly doubting if my code is pythonic. And when it takes to long I lose focus and I stop.
The same thing applies when I started a little Go web app, Go was rather new for me. I decided to use Docker and wanted to have a perfect solution with 3 containers(Nginx as reverse proxy , web app and API), auto rebuild and autoreload in developement mode etc. Than I started with writing in Go and everyone had to be tested perfectly, so I was looking for how to test things and how to run tests automatically after saving a file.
These things slowed me down to a point I where stopped. What did I want? I wanted to learn Go. What did I achieve? I learned how to create have production setup for a web app and api in Docker, I learned something about test suites in Go and I was frustrated because another learning project failed.
My advice, just start your project. You can't do it perfect because you want to learn it!
- JuanSoto 11y ago> I've this too. When I learn something new like a language I often want to do it right, like be "pythonic" when learning Python. It can take long for me to write some simple piece of code because I'm constantly doubting if my code is pythonic. And when it takes to long I lose focus and I stop. Exactly my current situation with Clojure.
- insamniac 11y agoMine as well.
- kisna72 11y agoI totally agree. If all you care about is to learn the language, just write code. Don't worry about all the other things that you may want to do. Just to Add on to it: If you want to learn python, don't start with django. If you want to learn javascript, use simple libraries like jquery. Basically start simple. My usual technique is to get the most basic knowledge about the language or a framework and then spend time building something (simple todo app, a wiki etc) and learn more about it in the process. I rarely start with a book. I try to find a succinct tutorial so I an read it quick, and start on building simple apps.
- nudpiedo 11y agoKeep focus: Learn or do one thing at a time (apply your iterative philosophy on top).
- stygiansonic 11y agoAgreed wholeheartedly. There are times when you should read and learn every detail before actually starting a new activity. (e.g. ground school before flying) This is usually when the cost of failure is unacceptably high. However, this is usually not the case, especially with things like programming, if that's what OP is talking about. Advice to "just do it" may seem simple, but it is surprisingly effective. When you learn by doing, you setup a feedback loop where you try something, see if it works or not, and if it does not, find out why/where it went wrong and retry it. For most people, this is mentally stimulating and provides the necessary psychological rewards to keep you going. If you get stuck/frustrated, this is when you should take a break and perhaps go back to reading/researching after a while. Don't worry about whether you're doing it the absolutely correct way, or whether what you've done is worthwhile to others. (What is "absolutely correct" is often subjective, anyways) Focus on the knowledge you gain, and take notes. For example, I've also been recently learning Golang. I wrote a simple Golang game server (using a SockJS library) to serve as a backend for a simple, multiplayer online game. Looking back, the initial code I wrote was horrible and needs to be refactored; but that in and of itself will be another learning exercise. Did I need to use Golang for this, or is this the best use of Golang? Probably not - I could have written it using Java or Node.js much faster, but wouldn't learned as much.