Live data from Hacker News

Same Stop: Life after 26 years as a programmer for Apple

engineersneedart.com

261–270 of 438 posts

Re: Same Stop: Life after 26 years as a programmer for Apple

#261

What I've seen in the past two years, a lot of people who have seemingly no fit to a life of a programmer have joined software industry. In my experience the best devs were the people who self-taught programming for pure joy of building a software, making a glimpse of imaging to something real through writing code. The others who were on this job because the compensation was hefty - they were likely to opt out to a m…

I think the important thing is that people enjoy it. They may enjoy other things too, maybe more, and have other responsibilities and that's fine. One of my kids is obsessed with cars, she's a proper petrol head, but she's going into software engineering. I told her that's fine as long as you genuinely enjoy programming, cars can be a great hobby. Life doesn't have to be about one thing.

Anyway in IT there are loads of different jobs other than programming. There's QA, application support, databases, project management, team leads, all sorts and it's pretty easy to switch tracks once you're on the inside.

Re: Same Stop: Life after 26 years as a programmer for Apple

#262
post #224

In 2 days time I'll mark my 27th year as a professional programmer (and just over 40 years since I started programming). I've worked in small companies, big companies, and mega-corporations. I've been a programmer, manager, team lead and CTO. And in doing so I discovered that I don't like managing people, I don't like meetings, and I don't like paperwork. I like long periods of focus. So I'm a software dev/architect…

I used to love the long periods of focus in my 20s, but ever since more life started happening, I can't do those anymore. It turns out my stress tolerance is incredibly low and when the life outside my work is not completely in order (like it rarely is after the 20s), being able to get into the flow state gets very difficult. I wish I was one of those people who could just forget the problems at home, etc. when they…

On flow: back when I started my blog (2004) I soon realized that nothing had ever turned on the "flow switch" as predictably as preparing and publishing posts: for 4-6 hours/day, 5-6 days/week, I was in heaven.

Reading the comments on vjk800's comment led me to focus on my state of mind today (I'll be 75 on June 8) as I work on my blog in its nineteenth year.

Though I spend perhaps 2-3 hours/day 3-5 days/week on it now (I post 3x daily, 7 days/week, down from 8x daily 7 days/week when I started), my flow state is as automatic as it was at the beginning.

I feel fortunate to have found something so reliably rewarding that has persisted throughout the ups and downs of everyday life.

Re: Same Stop: Life after 26 years as a programmer for Apple

#263
post #216

Earlier quoted context omitted.

Middle managers are a dime a dozen. However a good technical lead - who can contribute to the engineering team's discussions _and_ lead the team are very very hard to find.

Really? IMO there's an awful lot, they just ask for mid 200,000s.

Key word is "good" here.

Re: Same Stop: Life after 26 years as a programmer for Apple

#264
post #49

> But there is something becoming more familiar to me as I go back to the wild west of C programming (where very little happens behind the scenes I might point out - no garbage collection here!). I share this sentiment. I pursued computer science because of the romanticized notation of tracking every bit and byte and talking directly to the hardware. I know I'm not alone given the popularity of old-school fantasy con…

> Most modern development is gluing components together and wrangling packages. It's so far removed from the machine and the distance is only growing. That’s actually what I love most about things today. Hard components I might want to use probably already have a ready to made library I can start with. Time from inception to prototype to production is so short that it really removes a lot of the tedium. I wish it cou…

Same for me as well. I don't want to talk to hardware because the ideas I have in my head are so removed from that problem space. I want to build tools to help normal people do stuff or create automation. I fully understand and appreciate that to make all of that work, the low level stuff also needs to be fast and functional, but I'm not the person to make that optimization.

I really enjoy being a web developer despite most of us being the new butt of the so many programmer-centric jokes.

Re: Same Stop: Life after 26 years as a programmer for Apple

#266

Earlier quoted context omitted.

I have known programmers who don't know how a float is represented in memory. I just can't comprehend how they can gloss over basics like that.

And why is that necessary knowledge? Don't get me wrong, once you go down to embedded you sometimes do need to know and sometimes it just improves your understanding (and it's kinda cool anyway), but if you do high-level work, perhaps web work, all you need to know is the abstract interface of floats as a data type. What operations you can do, what is guaranteed about the result of those operations (loss of precision…

You have to understand that float are negative powers of 2 and that conversion from decimal is not as straightforward as for integer: conversion from decimal often leads to loss of precision contrary to what happens for integers.

Re: Same Stop: Life after 26 years as a programmer for Apple

#268
post #160

Earlier quoted context omitted.

I'm guessing the same story was told 600 years ago in Spain: "My father, an Inquisitor himself, told me of the time when the Grand Inquisitor promoted him. Ordinary priests are a dime a dozen, the great man said, but it takes special skill to be an Inquisitor. And that's why you never let them go back to the pulpit when you do find a good one."

Nobody expects the technical inquisition!

I suppose that takes us back to "Beware of the Believers"

https://www.youtube.com/watch?v=eaGgpGLxLQw

Re: Same Stop: Life after 26 years as a programmer for Apple

#269
Hey everyone. I have just completed a release of an iOS app, being a web developer.

Let me tell you… the Apple developer ecosystem is sooooooo convoluted! Is it just me or does anyone else feel that way?

Don’t get me wrong. The company is innovative and a trailblazer. It has done so much in terms of hardware-software integration. And I am not even talking about anything before MacOS X or iOS.

I mean … Objective C. XCode. The hodgepodge of a million different things smashed together. I have seen many people say it is elegant… I have seen many ecosystems. Apple’s one is, well, kludge upon kludge.

First there was [foo bar] but then you got also foo.bar and foo.setBar. You null, NULL but also nil, you had YES and NO but also got true and false later. You could swizzle but also you could have C++ features alongside Objective C for a while, for the ultimate in language law degrees. You got #include #import but also @import because hey, @ gave you random superpowers. You had protocol but later got NS versions of everything (like NSCopying) and then ARC bolted on and auto draining pools that worked some of the time.

Swift was much nicer and tried to go back to simplicity. It even helpfully renamed all your methods. But then it had things like exclamation points that you were never supposed to use, and a weird try/catch syntax that could crash your app anyway. And when Swift came out you also got YourApp-swift.h generated magically by XCode to bridge to Objective C, because of course you did. After all, you have to rely on XCode for so many things. Assets go in a special Package format, you see. They used to live on a Resource Fork but the filesystem got changed.

Apple’s class system is also a hodgepodge. You have NS from the good old days, you have Foundation framework, but then you also have a ton of others which duplicate some of the functionality.

But that’s just the start. You’ve got nib, make that xib, make that storyboards, and they are all different. You’ve got constraints of 10 different types but they don’t work as you’d expect with all the various tools. (Man I miss Visual Basic, that was 20-25 years ago!).

The buttons are tiny and functionality like dragging an IBOutlet are hard to discover when clicking does nothing. As a teenager I was on the Apple Human Interface Developers mailing list, and their Guidelines (anyone remember those?) said “no hidden modes”. Well, that is so quaint now, for the last 20 years the new Apple has violated all their HI Guidelines. Oh, and did I mention, you only had a couple page transitions, one of which was a curled page turn, and one was sliding up from the bottom — but sliding down from the top is just not a thing! Write it yourself! If you can.

But that’s not all. Not by a long shot. You have to work with CocoaPods as a package manager along with other ones, and put up with arcane error messages with each new OS version as things break because things that used to be OK are now not. And if that error comes from any of the hundreds of random build settings — good luck, buddy. Here is a video from an expert in the trenches … who is glad to discover someone else has been cataloguing all these build settings for years:

https://www.youtube.com/watch?v=xJLBTIWE-yQ&t=57s

No wonder Apple is trying to move towards an all-Swift future.

Did I mention Apple FORGOT TO RENEW THE CERTIFICATE ON ITS OWN MAC APP STORE — not once but twice?

I imagine it is better actually inside Apple. But hey, I worked inside Bloomberg and I can tell you, that codebase is … idiosyncratic to put it mildly. I guess it is like that inside many companies, but when you build a platform for developers to use, you need to make it clean and cut down on the number of concepts that have to be used, or at least make the concepts all consistent, like BSD.

On the bright side, Apple did usher in the Mac, the iPod, iPhone, Apple TV, many innovations. It did absorb NeXT, try to bridge with Darwin, change CPU architectures a bunch of times, make Grand Central Dispatch, create secure enclaves, and more. So we can give them a pass I guess as a company. But boy does their development ecosystem feel a lot of kludges that accumulated over the years!

Re: Same Stop: Life after 26 years as a programmer for Apple

#270

I find it surprising (in a good way) the author could be a programmer for 26 years at Apple. A lot of corporate places I've worked at are always pushing you to progress in to leadership positions; if you aren't moving upwards then you are "managed out" which I always find really sad, the idea that simply being good at your job is now no longer enough. Good on Apple if they don't follow this type of thinking.

What does "managed out" mean?

It is the practice of very subtly persuading employees to seek employment elsewhere when their "growth" has stagnated.

https://www.ft.com/content/356ea48c-e6cf-11e6-967b-c88452263...

You will see it mentioned in context of poorly performing staff, but it can also be used when you have someone who is perfectly capable at their role but has no desire to climb the ladder. In many corporate environments that is viewed very negatively.

Post reply on HN