Live data from Hacker News

What I would do differently if I was learning to program again

reddit.com

31–40 of 85 posts

Re: What I would do differently if I was learning to program again

#31
post #29

I wouldn't. I'd learn a trade. Not to be facetious, I'm serious. I love programming. I never played video games, I spent my free time learning basic and then assembler in the late 80's. At the time, I was custom cabinet maker. I eventually become allergic to the 'smell' in oak, causing health problems. I had to give it up. I was busy 8 hours a day. I made decent money. Theirs a certain satisfaction at the end of the…

> My opinion, my real opinion, is that if you find yourself writing code 'for fun' even if you don't know what your doing, pursue it.

The dirty secret of turning your hobby into a career is that there exists a very real chance you will kill your hobby and passion for the craft.

Unfortunately, one can only deal with some much half-assed code and coworkers before turning into a cynic who hates the craft. I almost wish I was just in it for the money, for this reason.

Re: What I would do differently if I was learning to program again

#32

Earlier quoted context omitted.

Why would anyone not want the power of an ide? Is it a Unix tough guy thing where there’s nothing that a GUI app does that you can’t do better in a terminal? Or is it that you’ve never really spent a lot of time in a professional ide so when you argue against it, it’s cause you don’t know?

All my opinion, of course. I learned Python much better because I did not use an IDE. I've written Java and C# using IDEs. I barely remember anything about their standard libraries. Python, in comparison, I know like the back of my hand. Thanks to writing Python in vim, I had to reference the docs, and eventually memorized them. Like vim itself, it made for a steeper learning curve, but the productivity gains in the…

> I barely remember anything about their standard libraries.

If an IDE can abstract that memorization away from you, what's the problem? The benefit I provide as a software developer is to solve business problems and provide value to the people that use my product. Knowing the optional third parameter to a string method I use once a month off the top of my head really doesn't help me with that as long as looking it up isn't slowing me down.

Re: What I would do differently if I was learning to program again

#33

Earlier quoted context omitted.

I'd use Vim from day 1, instead of wasting time with several IDEs.

Why would anyone not want the power of an ide? Is it a Unix tough guy thing where there’s nothing that a GUI app does that you can’t do better in a terminal? Or is it that you’ve never really spent a lot of time in a professional ide so when you argue against it, it’s cause you don’t know?

I spent a long time wrestling with trying to set up IDEs when I was learning. They were always a huge pain to set up, broke in confusing ways, and were generally far more effort than they were worth for the productivity gain (especially when I would try some other language/etc after a short period and go through it all again). Just using a text editor and the compiler was far easier to understand.

I still find some aspects of modern IDEs a pain, especially the fact that they either want to be your build system (and are generally crap at that) or lock you into a specific build system. Likewise I haven't found one IDE which can handle the variety of languages I use, so I need to learn 3, even if they all do basically the same thing.

I have some hope with the trend towards 'language servers' and also 'build-system servers' (though ATM cmake and Qtcreator are the only example I know of the latter), that this will change and you will be free to choose your combination of build system, development environment, and language with ease.

Re: What I would do differently if I was learning to program again

#34

Earlier quoted context omitted.

I'd use Vim from day 1, instead of wasting time with several IDEs.

Why would anyone not want the power of an ide? Is it a Unix tough guy thing where there’s nothing that a GUI app does that you can’t do better in a terminal? Or is it that you’ve never really spent a lot of time in a professional ide so when you argue against it, it’s cause you don’t know?

People are not sure what benefit is going to be provided to make up for the inferior text manipulation capabilities.

I remember tab completion being a big thing. When I was a new programmer, I really wanted that stuff, for sure. But as I see it now, I find the cases where I don't remember the name of the function I want to call rarer, instead wondering about the undocumented things like "is this method thread-safe?", "who owns the memory for this result object?", "what happens when the connection times out?", "does the error message this function returns contain the name of the file it couldn't open, or do I have to add it myself?" and so on, and the only way to find out is to open the source code of the library I'm using and to read it.

Like maybe IDE tooling has evolved to the point where it's just one keystroke to get the right answers to those questions, but I kind of doubt it. So if you want to demean people for not using an IDE, you need to sell it a little better and tell us what we're missing. If it's just tab completion and a shitty build system like IDEs were 10 years ago... not interested but thanks. If there is something that's actually helpful though, would consider.

Re: What I would do differently if I was learning to program again

#35
post #32

Earlier quoted context omitted.

All my opinion, of course. I learned Python much better because I did not use an IDE. I've written Java and C# using IDEs. I barely remember anything about their standard libraries. Python, in comparison, I know like the back of my hand. Thanks to writing Python in vim, I had to reference the docs, and eventually memorized them. Like vim itself, it made for a steeper learning curve, but the productivity gains in the…

> I barely remember anything about their standard libraries. If an IDE can abstract that memorization away from you, what's the problem? The benefit I provide as a software developer is to solve business problems and provide value to the people that use my product. Knowing the optional third parameter to a string method I use once a month off the top of my head really doesn't help me with that as long as looking it u…

I think the problem is always in the breadth of understanding. When you read documentation you discover more than exactly what you're looking for. When you tab complete something, it just tells you all the methods in the class that start with the letters you typed.

Re: What I would do differently if I was learning to program again

#37

Earlier quoted context omitted.

Why would anyone not want the power of an ide? Is it a Unix tough guy thing where there’s nothing that a GUI app does that you can’t do better in a terminal? Or is it that you’ve never really spent a lot of time in a professional ide so when you argue against it, it’s cause you don’t know?

People are not sure what benefit is going to be provided to make up for the inferior text manipulation capabilities. I remember tab completion being a big thing. When I was a new programmer, I really wanted that stuff, for sure. But as I see it now, I find the cases where I don't remember the name of the function I want to call rarer, instead wondering about the undocumented things like "is this method thread-safe?",…

What inferior text manipulation capabilities?

Re: What I would do differently if I was learning to program again

#38
post #33

Earlier quoted context omitted.

Why would anyone not want the power of an ide? Is it a Unix tough guy thing where there’s nothing that a GUI app does that you can’t do better in a terminal? Or is it that you’ve never really spent a lot of time in a professional ide so when you argue against it, it’s cause you don’t know?

I spent a long time wrestling with trying to set up IDEs when I was learning. They were always a huge pain to set up, broke in confusing ways, and were generally far more effort than they were worth for the productivity gain (especially when I would try some other language/etc after a short period and go through it all again). Just using a text editor and the compiler was far easier to understand. I still find some a…

Try IntelliJ if you want something that works with a lot of languages and handles all of them really well.

Re: What I would do differently if I was learning to program again

#39
post #29

I wouldn't. I'd learn a trade. Not to be facetious, I'm serious. I love programming. I never played video games, I spent my free time learning basic and then assembler in the late 80's. At the time, I was custom cabinet maker. I eventually become allergic to the 'smell' in oak, causing health problems. I had to give it up. I was busy 8 hours a day. I made decent money. Theirs a certain satisfaction at the end of the…

The grass is always greener. I grew up in a working class neighborhood where the majority of my friends parents and high school friends later became involved in trades. My high school had a trades program for mechanics, HVAC, electricians, plumbing, and a beauty school.

The vast majority are NOT making six figures. The work is hard, has long hours, and is physically exhausting. My grandpa was a welder/machine shop owner my uncle is a electrician. They would trade anything for a cushy desk job with great pay, great benefits and easy workload. I've never worked past 4pm and have ample paid vacation time. They will never be able to say that. Google says that here in Austin TX, the average master plumber makes $25 an hr. HVAC is the highest at $44 an hour on average. And we are going through a construction boom, also don't forget that you have to factor working in 100 degree heat and 50% humidity 5 months out of the year.

Sure you can start a business and eventually have 5 workers and 3 trucks like my grandpa but then you become a entrepreneur and have to deal with the whole billing, scheduling, selling, headaches of running a small business.

I find a lot of tech people idolize the blue collar fields. It's damn hard work.

Re: What I would do differently if I was learning to program again

#40
post #4

I don't code anymore (I'm more of a pointy-haired lower boss)...but what i wish i could go back in time and change around this is to have focused - I mean really, really focused - on 2 or 3 different programming languages only. Instead, what I've done over the years - again, when I coded as a dayjob - was to go shallow on far too many different languages (and ecosystems). I don't think it was me just chasing the "new…

I disagree somewhat strongly with your point #1, or at least I have a different framing for it. Don't bother focusing on depth in a very small number of programming languages or technology stacks. There isn't enough depth there to make that worthwhile. Programming languages are fundamentally similar with very few different paradigms, all of which can be learned and then applied appropriately to new languages. You can learn the more interesting or fiddly bits of any specific language you're working in as needed.

But depth of domain might be worthwhile. That is: "I work on distributed data storage systems", or "I work on data analysis systems in the energy industry", or "I work on self-driving sensor data analysis", etc. Maybe I'm wrong about this, it's certainly not the way I've done things, but it is the kind of deep expertise that I'm often envious of.

Post reply on HN