About 5 Years, All to gather
I've been programming professionally for over 22 years and writing code since I was a kid (over 30 years).
My number 1 lesson is...
You will never know everything there is to know about programming so keep learning and don't stress.
Other useful lessons...
Good code works well consistently and is easy to change. Only invest in changes to existing code that enhance one of those two properties. Everything else is a needless distraction.
Every bug is fundamentally the result of an invalid assumption. Strive to discover and convert as many assumptions to assertions as possible. This applies both to your actual code and also to your interactions with clients, product managers, business domain experts, etc...
Never leave a bug until you truly understand what caused it. You should be able to recreate and fix it at will.
In other words ...
Write code that is kind to the poor schmuck who'll have to change it later, because often that schmuck is you.
– Bill (from DevMastery)
10+ years, and even with that, know that no matter what, things will break. Getting better at code means you will work on more complex things and they will fail at times. Just start counting your brackets and ;.
16 years professionally, but been programming computers on and off for 33 years.
Learn all the time. Don't let yourself fall into the "Right, now I am a Ruby Developer" (for any language) trap. Learn new languages, learn new ways to use them. Do challenging stuff, with other people for preference.
Avoid PHP if you possibly can - it will allow you to form and get away with bad habits.
Never reject a language on first look because you don't like the look of the syntax - you may get over your initial reaction quickly and discover something marvellous beyond your initial prejudices. (e.g. "All those parentheses in Clojure are just confusing - if you can see past it this drops away in hours, particularly once you add paredit to your dev environment of choice and you are just left with an amazing development experience)
Learn Vi(m) AND Emacs - they are both awesome and both well suited to different tasks.
Use the command line - it's hard to learn to be productive, once you are you will wonder why everyone else f's around in the GUI and with IDEs.
Having said that if you are working on a large project have a good IDE (IntelliJ or similar) on hand for when you can save a lot of time by using one - following relationships between calls and their respective classes / func-libraries etc.
Write Unit Tests.
Bake in your deployment approach from the beginning and make build->test->deploy a 1st class citizen in your projects.
HAVE FUN! (otherwise what is the fucking point)
Since 1999... just keep learning and pay attention to what the market asks for.
For me, I started programming some eight years ago.
What I found out is, that there is always something new to learn and improve yourself. Lately, I examine certain features of Rust, which seem to kick me in a direction I like (error-safe code :) ).
My biggest lesson? There are many programming languages and each has its own forte. Choose the right tool for the right job and do enough research in order to be able to choose!
I've been writing code for 15 years, but only what I'd call 'programming' for the last 3! My biggest takeaways have been:
I started web developing in 1999 with Flash 4. Before that I did some fiddles with Commodore 64 and later with MS-DOS Basic. After Flash I learned some PHP, but I can't say I ever mastered it.
Node.js I started with in 2011 and have done all my projects using Node.js since. I use MongoDB as a database.
My biggest lesson have been keeping it simple. Using fullstack JavaScript works best for me, since I understand every little detail that's happening in the backend and frontend. I don't need to switch between mindsets and because I'm using MongoDB I have fullstack JSON as well. I never learned those confusing SQL-languages, so I was thrilled when MongoDB came out. Best language is the one you know best.
Another advice: have fun! Fiddle around, do side projects, play with new ideas.
20 years, but on-and-off in the first 12 or so.
Never stop learning, never get complacent in your knowledge and abilities, and get yourself a good feedback mechanism -- whether that be peer code reviews or a mentor, or some other means of getting feedback.
Wow, I thought I'd been programming (in the conventional sense) for longer than this: just over 2 years! LOL. Feels like forever ago when I started. But you can +5 years of Matlab from my degree if you like.
Single greatest take away?
You can't, and shouldn't, learn everything. And always ask "Why?"
Don't remember exactly when was the beginning, but doing it for a living since 2001. Biggest takeaway from all these years:
Since around age 15, just two years after getting my first computer, so that would be close to 17 years now.
My takeaway is that there's always somebody I can learn something from, so listen to what they have to say, you might just learn something.
12 years. Biggest take away: There's always something new to learn. Stay Relevant.
i started professionally in 2001, however I was programming in DOS in the early nineties. The biggest lesson I learned, besides never stop learning, is that if I put my mind to it, I could do just about anything thrown my way, and that I was extremely adaptable to picking up new projects and running with them. That transitioned over to other aspects of my life, and gave me more confidence as time went by.
For years I struggled with "Imposter Syndrome", and because I also seemed to start off at jobs working in classic asp (a predecessor to .NET), I didn't think I was "doing it right". Eventually I learned front-end work, as well as databases, and eventually became a full stack developer. When I got feedback saying "wow, how'd you do that in such an archaic language?", I simply smiled. This wasn't about stroking my ego, but rather showing me that I could do something not everyone can do. As someone with a disability, this really boosted my confidence, and like I said earlier, helped me with other aspects of my life :)
More or less 5 or 6 years of programming, first outside the web world, and since more or less 3-4 years focused on web :)
10+ years I learned programming in school but I wouldn't call myself programmer till ten years ago.
I think @bebraw nailed it. You never stop learning, if you do you probably should move to management. Where you mainly need an idea of what is happening and don't want to many details.
I started more seriously in early 2000s. You can make the math from there.
Best lesson is harder. Maybe it has something to do with the fact that more you learn, the more you learn about how much you still have to learn. So learning never ends as there's something else around the corner. Certain fundamentals might remain, but there are always nooks and crannies to explore and discover. Knowledge is fractal.
Michael Gilley
Frontend Engineer at Zapier
Arpit Mohan
CTO @ Appsmith
Been writing code for about 10 years now. My single biggest takeaway is that you must constantly be reading other people's code. Most developers can write code, but it's very hard to read someone else's code or your own code in 6 months time. The more you read code, the more you understand why some practice is good/bad. Then, whenever you produce code, your brain will automatically prevent you from following the bad practices.