News for hackers. Stuff that matters.
Re:The Biggest Difference Between Coding Today and When I St... by tetraodonpuffer on Tuesday March 21, 2017 @02:09PM (#13924657)
As somebody else who started coding in the mid 80s I feel this is one of the disconnects of the interview process: interviews evaluate you on the basis of an "80s programming model" where if you needed a red black tree library, you likely had to write it on your own.

It would be a lot more representative of today's work if you were asked: given these 3 github repos with packages that all purport to do X, which one would you pick for this set of requirements and why? and how long would it take you and a team of 3 to get it done? Then you have an hour sitting next to the interviewer that can see what you are looking at in the code, what you are googling, how you are estimating and so on.

You could be the best algorithm writer in the whole world, but these days when do you ever have the luxury to write greenfield code? It's all "let's leverage open source" and "we don't have the budget to write our own frameworks" and "why do you want to spend X months writing this, when I googled and in 5 minutes I found 8 packages that do it" and "estimate how long it would take you to do <insert fuzzily defined huge task>" etc. etc. etc.

Personally I do miss the days where I felt that all I did was coding, as opposed to putting together a collage with code found elsewhere.

I sometimes feel like doing an Ask HN about "how do you find a coding job where you actually code most of the day when you are 20 years into your career"

Re:The Biggest Difference Between Coding Today and When I St... by alkonaut on Tuesday March 21, 2017 @02:53PM (#13925046)
I think if you miss doing proper algorithmic coding and feel stuck gluing frameworks between a db and a web browser, you should just try to avoid web related development.

In embedded, desktop, games and a ton of other disciplines, there is lots of old school and fun dev and a minimal amount of CRUD boilerplate.

Re:The Biggest Difference Between Coding Today and When I St... by marssaxman on Tuesday March 21, 2017 @03:15PM (#13925272)
Yes, this has worked well for me. Stay out of web development and it's not hard to spend your time doing "real" programming. Embedded work is especially good if you feel nostalgic about 80s-style PC hacking - the downside is that product cycles are limited by the hardware side, so the pace can feel really slow.
Re:The Biggest Difference Between Coding Today and When I St... by user5994461 on Tuesday March 21, 2017 @03:29PM (#13925391)
> Embedded work is especially good if you feel nostalgic about 80s-style PC hacking.

True, and reciprocally, it is terrible if you hate it. Back to the world of having no debugger, zero tool, potentially no auto completion and unable to do a print.

I still remember an old embedded IDE, when I scrolled down or up with the mouse, the code sometimes becomes a screen of garbage. It's not a display bug, if you save the file, it really become garbage of random characters :D

Re:The Biggest Difference Between Coding Today and When I St... by marssaxman on Tuesday March 21, 2017 @04:40PM (#13926034)
Yeah, that's true - but the primitive conditions are a constraint that breeds creativity. I love to build tools, and embedded systems work offers lots of excuses for what would be called "reinventing the wheel" if you did it on a PC. No print? I'll write my own! No debugger? I'll build one! No autocomplete? Don't care, I never use it anyway! IDE sucks? Ehh, whatever, I'll use the terminal! Serial port driver doesn't work? Bootloader crashes? No idea what's going on? Well... okay, I'll debug it by making this LED blink!

But yeah, if that's not what gets you going, then embedded work is not for you.

Re:The Biggest Difference Between Coding Today and When I St... by kochthesecond on Tuesday March 21, 2017 @03:37PM (#13925462)
I will never go back to neither logs nor stacktraces.
Re:The Biggest Difference Between Coding Today and When I St... by golergka on Tuesday March 21, 2017 @03:54PM (#13925604)
If you can't tell apart a O(n^2) solution from O(log n) one, you still shouldn't be doing server-side development though.
Re:The Biggest Difference Between Coding Today and When I St... by jandrese on Tuesday March 21, 2017 @04:03PM (#13925682)
Of course when you're gluing libraries together it is hard to know what they're doing under the hood. There are a lot of libraries with catastrophically stupid design decisions hidden behind the API, and then when everything runs like shit you find yourself having to dig into the libraries until you find the problem.
Re:The Biggest Difference Between Coding Today and When I St... by Qantourisc on Tuesday March 21, 2017 @05:37PM (#13926500)
Anecdotal evidence of "just gluing libraries": I once had users complain about a web-application being slow. As it turns out, it needed 1 second to generate 1KiB of data. They must have been using some sort of slow ORM in the back-end doing 1 DB query per FK.
Re:The Biggest Difference Between Coding Today and When I St... by infinite8s on Tuesday March 21, 2017 @06:22PM (#13926823)
That's not a slow ORM. That's literally the model of every single ORM I've seen! Sets, who needs them!
Re:The Biggest Difference Between Coding Today and When I St... by golergka on Tuesday March 21, 2017 @05:28PM (#13926427)
I feel that you're driving "we're just gluing libraries" argument to the point of absurd. Do you think that designing database schema and queries that run over it is something that is extremely rare and high-level in modern web development?
Re:The Biggest Difference Between Coding Today and When I St... by chadgeidel on Tuesday March 21, 2017 @05:57PM (#13926643)
It's not rare, yet I find myself redoing this over and over with every job. Web apps that are a HTML table fronting a CRUD back-end and simple database schema are all too common.

I hear you saying "well, that's your fault you keep working at those companies" - and that's not too far from the truth.

Re:The Biggest Difference Between Coding Today and When I St... by monksy on Tuesday March 21, 2017 @05:37PM (#13926502)
Details matter, quality development matters, and experience matters a LOT!
Re:The Biggest Difference Between Coding Today and When I St... by pointernil on Tuesday March 21, 2017 @04:07PM (#13925719)
Okay, pure anecdotal but: exactly the same "complaint" including exactly the same advice (minus the "web" ) could be found some 20 years ago. Not only it seems the field is not "structurally" changing much, it seems people are people, still ;) ... and "CRUD" moved to the web.
Re:The Biggest Difference Between Coding Today and When I St... by alkonaut on Tuesday March 21, 2017 @05:12PM (#13926276)
Yes there has always been demand for what today is the archetypical web app. Data input. Data washing, data into DB, data out of DB data presentation. Basically the same CRUD we do in webapps, but just a DOS interface, VisualBasic form... That's what you don't want to do.
Re:The Biggest Difference Between Coding Today and When I St... by dheera on Tuesday March 21, 2017 @03:15PM (#13925271)
I disagree. A lot of times it still makes sense to write your own code from the ground up. There are so many instances where a lot of stuff out there is way too overcomplicated for the task at hand and takes more time to configure and resolve dependencies than it takes to just code the part you actually need from scratch.

A lot of times, if I'm looking at some random github repo out there and its dependencies aren't apt-gettable or pippable or npmable, I just say "screw it" and write it from the ground up using only things that are apt-gettable, pippable, or npmable.

Except OpenCV 3.1. I'm willing to deal with that one. But I have a script to install it that's 55 lines long. (How ridiculous is that -- we need 55 lines of code to install things these days. Can't we just tell our computers to install stuff and aggressively figure out how to install it, no questions asked?)

Re:The Biggest Difference Between Coding Today and When I St... by zemo on Tuesday March 21, 2017 @03:45PM (#13925521)
sure but you often have to fight tooth and nail for the right to invent anything yourself in a lot of modern web-based environments. The idea of actually inventing something yourself is seen as crazy and dangerous in a lot of places.
Re:The Biggest Difference Between Coding Today and When I St... by SCHiM on Tuesday March 21, 2017 @05:21PM (#13926361)
That's because there's some truth in that. Remember the time when searching for ' would spit out a detailed error message containing the database name and query that failed? Or adding <h1> to your profile page would break everything for everyone?

That was because everybody was writing their own stuff instead of relying on frameworks that handle fuzzy things like user input for you. Many webpages have gotten more secure, but no without a cost for creative programmers everywhere.

Re:The Biggest Difference Between Coding Today and When I St... by wvenable on Tuesday March 21, 2017 @10:09PM (#13928006)
If you're going to code something yourself, you have to be skilled enough to do it. Admittedly, one of the benefits of frameworks is that they allow low-skilled developers to produce reasonable and safe results quickly.

But if you are skilled, you can easily produce code equivalent or better than the average framework out there. And it will likely be simpler because you're only coding for your own use case and not every case that exists.

Re:The Biggest Difference Between Coding Today and When I St... by dheera on Tuesday March 21, 2017 @09:25PM (#13927847)
There are ways to write your own code and not be stupid. Parametrize SQL queries, use libraries to strip HTML, and so on. Unit test your stuff. Have your server software throw a generic 500 for anything that isn't a 200 from your upstream socket.

I am not saying write everything from scratch. Just use only the stuff you have to.

Re:The Biggest Difference Between Coding Today and When I St... by busterarm on Tuesday March 21, 2017 @05:27PM (#13926420)
I can't even get OpenCV to install properly on my Mac, so there's that. That or GQRX/libsdr. Yay Python. If you have, please share!
Re:The Biggest Difference Between Coding Today and When I St... by acdha on Tuesday March 21, 2017 @05:30PM (#13926446)
Unless you have a really, really good reason, use Homebrew (https://brew.sh/) and it's a simple "brew install opencv" or "brew install opencv3".
Re:The Biggest Difference Between Coding Today and When I St... by busterarm on Tuesday March 21, 2017 @09:28PM (#13927858)
that failed for me last year when I tried, but it was after I tried and failed with gqrx which probably screwed things up. Will try again.
Re:The Biggest Difference Between Coding Today and When I St... by BearGoesChirp on Tuesday March 21, 2017 @03:07PM (#13925197)
>I sometimes feel like doing an Ask HN about "how do you find a coding job where you actually code most of the day when you are 20 years into your career"

Find a company who requires any non-approved outside code, no matter how well known and even if using an already approved license, to go through a multi-month approval process that is almost always longer than the current project's allotted timeline.

As it is, if I need a red black tree, and if it isn't in any approved libraries, it is faster for me to write it myself.

Re:The Biggest Difference Between Coding Today and When I St... by javajosh on Tuesday March 21, 2017 @03:48PM (#13925547)
Multi-month approval sucks, but to be honest I wish more companies were more skeptical of adding 3rd party dependencies. At the very least, do a code review of the dependency (and it's dependencies..) and acknowledge the actual cost associated with the addition you are making.

Hardly ever happens.

Re:The Biggest Difference Between Coding Today and When I St... by AtheistOfFail on Tuesday March 21, 2017 @04:28PM (#13925929)
The issue that most "dev shops" can't estimate anything beyond three months so the best they can do is "this 3rd party dependency speeds up current process by X"
Re:The Biggest Difference Between Coding Today and When I St... by jhayward on Tuesday March 21, 2017 @03:23PM (#13925326)
I don't want to seem sarcastic, since this is a genuine question: What are the positive aspects that would induce you to work or stay in such an environment?
Re:The Biggest Difference Between Coding Today and When I St... by user5994461 on Tuesday March 21, 2017 @03:33PM (#13925423)
You can code all day and stay in your corner without any external hassle.

That process being enforced will ensure that most code is buggy and development is totally unproductive. That will usually create an environment where noone expect anything from developers and you have zero accountability.

if it all goes well, you can toy around all day and not have to ship anything, still getting a paycheck, and not risking the comparison to your peers.

Re:The Biggest Difference Between Coding Today and When I St... by BearGoesChirp on Wednesday March 22, 2017 @10:56AM (#13931414)
>That process being enforced will ensure that most code is buggy and development is totally unproductive.

I don't think I'm following you. The procurement process is quite different than our coding process which involves team reviews and the like. Yes, productivity isn't as high as it could be because we sometimes have to develop something in house instead of using open source code, but we still have code review, unit testing, and similar required.

Re:The Biggest Difference Between Coding Today and When I St... by hashmal on Tuesday March 21, 2017 @05:11PM (#13926257)
sure, but… what about the mirror?
Re:The Biggest Difference Between Coding Today and When I St... by BearGoesChirp on Wednesday March 22, 2017 @07:41AM (#13930113)
Approval process is outside the dev shop's control. Overall this is one of the least stressful positions I've been in, has the best pay so far, I enjoy working with my team, and has a short commute.
Re:The Biggest Difference Between Coding Today and When I St... by throwaway7645 on Tuesday March 21, 2017 @09:12PM (#13927785)
What industry are you with?
Re:The Biggest Difference Between Coding Today and When I St... by pavlov on Tuesday March 21, 2017 @03:20PM (#13925310)
If doctors were hired like programmers, they would be quizzed on chemistry trivia and then asked to mix their own drugs in vials using raw pharmaceutical ingredients.
Re:The Biggest Difference Between Coding Today and When I St... by user5994461 on Tuesday March 21, 2017 @03:35PM (#13925444)
Pharmacists actually have to mix some drugs and that's part of the training.
Re:The Biggest Difference Between Coding Today and When I St... by flyaway on Tuesday March 21, 2017 @03:03PM (#13925172)
> It would be a lot more representative of today's work if you were asked: given these 3 github repos with packages that all purport to do X, which one would you pick for this set of requirements and why?

I play this game with my students on the second day of class, along with "read all these people fighting on StackOverflow and tell me the answer you have the most faith in." They split 50/50 between terrified and super pumped about how much trust they'll be putting in Random Internet Code.

Re:The Biggest Difference Between Coding Today and When I St... by AtheistOfFail on Tuesday March 21, 2017 @04:30PM (#13925934)
There was actually a web page that would answer your stack overflow answer by running and benchmarking all of them.

There was also a plugin that would allow you to directly grab code from stack overflow and put it right into your project, kinda of like a search engine for laziness (I think it was an Atom plugin)

Re:The Biggest Difference Between Coding Today and When I St... by PeterisP on Tuesday March 21, 2017 @04:47PM (#13926073)
There's stacksort, a sorting algorithm that searches StackOverflow for sorting functions and runs them until it returns the correct answer.

An implementation is here https://gkoberger.github.io/stacksort/

Re:The Biggest Difference Between Coding Today and When I St... by erik_seaberg on Tuesday March 21, 2017 @05:20PM (#13926351)
Also https://github.com/drathier/stack-overflow-import which turns upvoted answers into modules.
Re:The Biggest Difference Between Coding Today and When I St... by eksemplar on Tuesday March 21, 2017 @02:36PM (#13924895)
I get why some places would want to test your programming skills, I mean, google does a lot of 80's style invention talked about in the article. But for 90% of programming jobs, you're better off with a gaffatape programmer who brings social skills as well as business understanding.

Especially outside of full software companies, the ability to evaluate business processes as well as digitizing them is simply invaluable, and you'll almost never need to write your own x anyway.

Re:The Biggest Difference Between Coding Today and When I St... by adrianratnapala on Tuesday March 21, 2017 @04:34PM (#13925978)
I'd say that skill set is useful for the 10% of jobs where programmers are pretty close to being their own managers.

Really it is better if "product owners" (or whatever) could actually do their job and talk to clients to distil out requirements that are clear and achievable. After that, the kind of programmer right for the job depends on, well, the job.

Re:The Biggest Difference Between Coding Today and When I St... by PeterisP on Tuesday March 21, 2017 @04:50PM (#13926092)
What clients? The vast majority of programmers and programming quantity happens in in-house functions in non-tech companies. There's no "product owners", there are business functions that need changes to their internal mess of stuff, so they hire programmers for that.
Re:The Biggest Difference Between Coding Today and When I St... by adrianratnapala on Tuesday March 21, 2017 @06:06PM (#13926706)
But then it still depends on the size of that in-house programming organisation. If it is just a few guys, then the team lead needs to take on those roles as well as code. If it is larger, then there should be some specialisation and professionalism in the non-coding roles.
Re:The Biggest Difference Between Coding Today and When I St... by walshemj on Tuesday March 21, 2017 @05:21PM (#13926364)
Even in the 70/80's at a world leading rnd place we did not write our own fourier subroutines we brought them in from the NAG https://www.nag.co.uk/

Like wise we brought in Gino-F to plot results nicely