[HN Gopher] I feel like I made a mistake investing professionall...
       ___________________________________________________________________
        
       I feel like I made a mistake investing professionally into Flutter
        
       Author : ksec
       Score  : 162 points
       Date   : 2023-08-12 09:49 UTC (13 hours ago)
        
 (HTM) web link (reddit.com)
 (TXT) w3m dump (reddit.com)
        
       | [deleted]
        
       | sirsinsalot wrote:
       | It mistake misses the point of the investment. The pay-off is
       | experience in new patterns, new tooling, new approaches. The
       | dividend is in the job where you use the tool but the capital
       | gain is in experience.
       | 
       | When I hire for my team, I never mention the stack. I don't care.
       | I am hiring software engineers, and what I value is mindset and
       | ability.
       | 
       | I'll throw you in at the deep end. Learn the language, libs,
       | tooling, infra on the job and the team will support you. Because
       | you're awesome. That's why I hired you.
       | 
       | edit: Sound _less_ unintionally arrogant.
        
       | 5cott0 wrote:
       | parsing JSON in Flutter seems like A LOT
       | 
       | https://codewithandrea.com/articles/parse-json-dart/
        
         | mtizim wrote:
         | If you really want to write it yourself, sure. This code is
         | very easily automatically generated.
         | 
         | https://pub.dev/packages/json_serializable
        
         | mhoad wrote:
         | It's less dramatic in real life https://dart.dev/guides/json
         | even more so in Dart 3 https://dart.dev/language/records
        
         | throwoutway wrote:
         | Just holding down the spacebar to scroll that page made me
         | never want to use Flutter to parse JSON
        
       | jstx1 wrote:
       | The mistake isn't investing time into Flutter; it's being "the
       | Flutter guy", only knowing Flutter and only searching for Flutter
       | jobs.
        
         | MrDresden wrote:
         | It has been interesting seeing how many interviewees coming in
         | for a mobile app developer positions in the last 4-5 years have
         | made bold claims about native development
         | (Obj-C/Swift/Kotlin/Java) being dead due to Flutter, then
         | fumbling completely when asked to solve problems that would
         | require them to drop 'down' into the native environment.
         | 
         | Having Flutter in the toolbox is quite a good thing, unless
         | there is nothing else in there. Then you are in trouble.
        
         | willio58 wrote:
         | Same could be said about "the react guy", which I definitely
         | have been in the past. Of course react has buy-in 10x what
         | flutter ever had but still.
        
           | 1986 wrote:
           | You need to know JS to be a React guy though and that's
           | easily transferable to another JS framework or other frontend
           | work, where is Dart used other than Flutter?
        
             | nailer wrote:
             | I know a lot of React people that don't know JS very well
             | and far more that don't know CSS basics.
        
       | harel wrote:
       | The market is so weird right now, that I find it hard accepting
       | this. A lot of jobs that would have been otherwise open are
       | paused.
       | 
       | Having said that, I have just recently got into Flutter/Dart and
       | I found the experience quite enjoyable and the resulting app very
       | polished. From the tooling to the language itself and the Flutter
       | framework - it's a joy.
        
       | synergy20 wrote:
       | I spent quite some cycles into flutter|dart, ended up with React
       | Native for mobile and wxWidgets for cross platform desktop
       | GUI(electron.js is too fat for me and wxWidgets 3.2 looks
       | decent).
       | 
       | RN(javascript) and wxWidgets(c++) are both job friendly, unlike
       | Dart, which is a language I actually enjoy, but there are not a
       | lot jobs for it anywhere.
        
         | PKop wrote:
         | Any particular reason you chose wxWidgets over QT ?
        
           | synergy20 wrote:
           | I don't want to get into the complexity of Qt licenses ever,
           | and wxWidgets does everything I need so far, plus it's 100%
           | open source and free to use. the new release 3.2 is pretty
           | good and it's also smaller than Qt ecosystem, which means
           | much easier for me to learn and start to make releases.
        
       | suyash wrote:
       | For anyone reading this and if you want to develop mobile apps,
       | just first learn native iOS/Android platforms, they are not going
       | anywhere before you get tempted by other flashy technologies like
       | Flutter or React Native. Most companies including the ones that
       | created these cross platform frameworks, build thier core apps
       | using native stack for a reason.
        
         | m_fayer wrote:
         | I used to say just this. And I did native Android dev for many
         | years, but I gave it up around 2019.
         | 
         | When I finally checked out, native Android was a teetering mess
         | of compatibility libraries, half-baked never-finished "new ways
         | of doing things", lacking docs, forever-bugs, and overall
         | neglect. Simple ui would take you 5x as long as equivalent css
         | and have you dropping down to low level drawing in frustration.
         | 
         | Back then, I felt native Android didn't deserve my time or
         | patience.
         | 
         | Has this picture improved?
        
           | tarkin2 wrote:
           | Jetpack Compose, and Kotlin coroutines, mixed with kotlin
           | multiplatform code, came and made many things nicer,
           | especially UI. With so many libraries and so many ways of
           | doing things with so many opinions it's still hard to digest
           | of course.
           | 
           | It's better than non native for performance and experience
           | but many companies will of course care more about the money
           | saved from a sub native experience with fewer developers.
        
             | flutas wrote:
             | > It's better than non native for performance and
             | experience but many companies will of course care more
             | about the money saved from a sub native experience with
             | fewer developers.
             | 
             | I currently work at an agency doing Android apps (not a
             | typical pump and dump agency mind you, I've been the lead
             | on this single project for 5 years and we've had them as a
             | client for 8+), and I'm so happy to see our client buck
             | that.
             | 
             | They've had us on a native app that we've been supporting
             | for the entire 8 years, and had deep technical issues from
             | before us ("lets reinvent the web browser for UI"). They
             | had a secondary internal team (known to us, no hidden
             | surprise, you're gone stuff) working to replace us with a
             | greenfield cross platform app (I think react native). That
             | project went on for a year before they cut their losses and
             | said "cross platform can't be good enough."
             | 
             | We're now in the planning phase of a complete greenfield
             | rewrite of the existing app to take advantage of Compose +
             | Kotlin, and ditch 12 years of tech debt and I'm practically
             | ecstatic.
        
           | MrDresden wrote:
           | You truly picked a bad time to move away. The sheer quantity
           | of chance that has happened since EOY 2019 is staggering.
           | 
           | I say this as someone who has mostly done Android dev since
           | '09.
        
         | zukzuk wrote:
         | I'd argue the opposite. For a lot of people, getting quick
         | results is absolutely needed for motivation. Focusing on
         | learning "the fundamentals" before getting to the enjoyable
         | parts is bad advice for most, as it often leads to people
         | dropping out before they get hooked.
         | 
         | I agree that you probably can't be a decent mobile dev in the
         | long term without learning basic iOS/Swift or
         | Android/Java(/probably Kotlin nowadays) but that is not a good
         | place to start for people who are just getting started.
        
       | sgammon wrote:
       | You did -- blame Google for breaking their promise to you and to
       | users.
        
       | amelius wrote:
       | So what would be the best mobile development setup for someone
       | who:
       | 
       | - prefers to work in a Unix-like environment (e.g. Linux);
       | 
       | - prefers to code in Vim;
       | 
       | - prefers to have a single unified codebase for different mobile
       | platforms;
       | 
       | - prefers to test applications on a Linux machine running an X
       | server.
        
         | rcme wrote:
         | MacOS is Unix, and it's pretty much the only option if you want
         | to target iOS.
        
         | onli wrote:
         | Are you aiming at that? Flutter should work well for that
         | scenario. I'd use an IDE to simplify testing in an emulator,
         | but you could manage that manually from the terminal.
        
         | bicx wrote:
         | React Native may be a good bet, while testing with an Android
         | emulator. However, you won't be able to build an app-store-
         | approved iOS app without Xcode tools, which are not officially
         | available on Linux. The CLI tools for building mobile apps are
         | definitely not up to par with the IDEs though.
        
         | tetromino_ wrote:
         | > prefers to test applications on a Linux machine running an X
         | server
         | 
         | Apple won't allow you to do that. Any binary submitted to their
         | app store must be built using Xcode running on MacOS on genuine
         | Mac hardware. It's a tax they collect from their developer
         | community; if you don't want to pay, you won't get to play in
         | their walled garden.
        
         | izacus wrote:
         | The one that changes your listed points to something that's
         | compatible with modern mobile development.
         | 
         | Your questions sound like a plumber asking how can he repair
         | computers with a wrench and a saw. Don't get emotionally
         | invested in tools.
        
           | amelius wrote:
           | Ok, then I guess I'll wait for the day when WASM runs on
           | these mobile platforms so I can bring my dev environment to
           | them instead of the other way around.
        
         | rapsey wrote:
         | Why are you hamstringing yourself?
        
           | allarm wrote:
           | (not op) This is not hamstringing. It's a matter of
           | preference. I prefer jeans to a tie and a costume. I prefer
           | Emacs and Vim to Vscode. I choose jobs that allow me to wear
           | jeans and code in Emacs.
        
             | saagarjha wrote:
             | There are plenty of jobs that will let you do that. Most of
             | them will not be writing software that is built on X.
        
               | allarm wrote:
               | So? What's your point?
        
               | saagarjha wrote:
               | Your choice of text editor is largely irrelevant to your
               | job. Picking a legacy tech stack to work in is not.
        
               | allarm wrote:
               | I get that. I just don't think that "hamstring" is a good
               | word to describe it. It's a personal preference.
        
       | Aulig wrote:
       | As the comments on the post say - it's most likely due to the
       | generally slow job market. 3.5 years later I'm still glad that I
       | chose to use Flutter in my business.
        
       | nologic01 wrote:
       | Developers have a finite useful lifespan and they need to pick
       | their portfolio of techologies wisely if their journey is not
       | going to be an anxious random walk chasing the latest fad.
       | 
       | You cant only pick "winners" but you almost need to develop a
       | sixth sense for what will be a valuable and long term addition to
       | your finite toolbox.
       | 
       | Looking at tech attributes is just the start. business and
       | community context, complementarity with other pieces etc are all
       | the subtle factors that may help avoid wasting energy in short
       | lived pursuits.
        
         | somsak2 wrote:
         | I don't think it's subtle at all. Pick existing popular
         | technologies / frameworks. If you like to gamble a bit, pick
         | those that you see growing quickly. Invest time in learning new
         | stuff (ideally, on an employer's dime) throughout your career.
         | 
         | If you don't care about being on the 'bleeding edge', you
         | really don't have to think about it too hard and you'll have
         | plenty of job opportunities.
        
       | [deleted]
        
       | nailer wrote:
       | Of course they did. Dash/dart was obviously dead about three
       | months into it's existence. Google cancelled their plans to
       | replace JavaScript after nobody expressed interest and Dash/dart
       | will never be more than a curiosity.
        
       | glimshe wrote:
       | I only invest in company-sponsored tech after the market share
       | grows to a ver significant number. A lot of what is sold as "the
       | future of X" is just marketing. Flutter and Dart in particular
       | failed to thrive, as many of these technologies do, and are
       | evolutionary dead ends (despite the remaining die-hard users).
        
       | tenpies wrote:
       | [flagged]
        
         | anonyfox wrote:
         | I don't get it. Whats wrong over there?
        
         | FirmwareBurner wrote:
         | It's the same in most of Europe too. Employers are picky with
         | who they hire.
        
         | tommica wrote:
         | What does this have to do with the original post?
        
           | monsieurgaufre wrote:
           | Not much, imo.
           | 
           | But this discourse is rather frequent from people/doomers who
           | hate Trudeau for $reasons.
           | 
           | Source: am canadian.
        
       | jimmychoozyx wrote:
       | [dead]
        
       | shipscode wrote:
       | Flutter and svelte have clearly been astroturfed as part of their
       | marketing strategy. I wouldn't touch them with a 10 foot pole.
        
         | esafak wrote:
         | why not svelte?
        
       | [deleted]
        
       | pjmlp wrote:
       | Flutter and Dart future are tied together, both rescued by
       | AdWords business unit.
       | 
       | It is never going to be beyond a niche thing, unless Google does
       | indeed ship Fuchsia in large scale.
        
       | anon7331 wrote:
       | It isn't clear why the discussion is around flutter.
       | 
       | The problem is when you define yourself by the technology you
       | know. You're an app developer or an engineer, not a flutter
       | developer. Focus on showing your ability to make apps or whatever
       | the target company does.
        
       | merrvk wrote:
       | You could say this about any Google technology.
        
         | rvz wrote:
         | I know right? Just like Golang, Kubernetes, Chrome APIs, etc /s
        
           | quickthrower2 wrote:
           | V8; GCP; Protobuf;
        
           | nailer wrote:
           | I'm not sure why sarcasm is needed. Go lost to Rust as the
           | mainstream safe systems language, k8s is a meme for wasted
           | engineering resources, obviously Dart/Dash failed in its
           | intention to replace JavaScript (I don't know what 'Chrome
           | APIs' are).
        
             | aatd86 wrote:
             | I don't even know how to write a linked list in Rust...
             | Dang! I'm doomed... :o)
        
             | quickthrower2 wrote:
             | Go lost to Rust. Citation?
        
               | nailer wrote:
               | Is one needed? Rust is in the Linux kernel, in the
               | Windows kernel, and is used by the most active
               | blockchain.
        
               | chairhairair wrote:
               | Those are some true measures of success right there.
        
               | nailer wrote:
               | Yes, those are incredibly important projects.
        
             | the_only_law wrote:
             | Despite ostensibly being a "systems language". I see Go
             | used more often for writing CRUD apps or APIs. There's a
             | lot more work in that then working in rust, thought I've
             | admittedly been surprised with the amount of rust jobs I've
             | seen.
        
           | invalidname wrote:
           | App Engine or even GCP. Reader etc.
           | 
           | Android is also terrible. As an Android developer it's the
           | absolute worst when compared to iOS development. Google is an
           | Ad company, everything else it does is a hobby.
        
           | sgt wrote:
           | They're even keeping GWT alive somehow. That was a major
           | mistake, though. I remember building a large GWT project and
           | the compile times just started getting into multiple minutes.
           | Debugging was hard.
        
             | invalidname wrote:
             | They are not. It's a third party fork that's keeping it
             | alive. It's dead because Google didn't put any resources
             | into it and just threw it out to see if it sticks. Then
             | didn't keep up with the capabilities of JavaScript
             | frameworks and didn't release any proper templates.
        
               | nailer wrote:
               | Did gmail migrate off GWT?
        
               | invalidname wrote:
               | It never used GWT. They claimed GWT can be used to build
               | apps like gmail and that was misleading. They didn't
               | write it using GWT since it predated the existence of
               | GWT.
        
               | sgt wrote:
               | When I checked 2-3 years ago, Google Cloud portal was
               | based on GWT.
        
       | tkiolp4 wrote:
       | I don't buy it. As software developers we learn technologies for
       | breakfast. We learn them, and then we forget them. We recollect
       | the wisdom gained and apply it in our next gig using a different
       | technology. It works for mobile development, for frontend, for
       | backend, for infra, for almost anything.
       | 
       | I have worked for years with PHP, Apache, Ansible and MySQL.
       | Nowadays not anymore. And in 7 years I'll be using something
       | else. Learn the fundamentals (which is not a one-time job, btw)
       | and you'll be fine. If someone asks for technology X in their job
       | offers when you know Y, but you know you won't have difficulty in
       | learning X, just take a few days in learning X and then put it in
       | your CV. You'll get pass HR screening and then you'll have a
       | chance to explain in tech interview that your are more of a
       | technology-agnostic dev. You'll do fine.
        
         | mathisfun123 wrote:
         | >don't buy it. As software developers we learn technologies for
         | breakfast.
         | 
         | This is such a funny mantra. Okay learn how nuclear fission
         | works. Or EUV lithography. Or power transmission across
         | superconductors. All of these are extant, commercial,
         | technologies (yes even the last one). Too much? How about
         | something more pedestrian like overhead cams and electric fuel
         | injection? Too far afield? Okay learn how DMA works on a GPU -
         | not how to call `copy(host, device)` but what _actually_
         | happens and more importantly _why_.
         | 
         | The truth is software developers learn APIs, not technologies
         | (and not over breakfast either). Point being, it's not good to
         | be haughty because if tomorrow you were out of a job and the
         | only place hiring was the Ford motor plant I think you'd be
         | just as fucked as the author of the post.
        
           | somsak2 wrote:
           | You're just arguing semantics. And the example given can go
           | the other way: if your Ford motor plant closes and the only
           | places hiring are software shops, you'd also be "fucked".
        
             | mathisfun123 wrote:
             | > You're just arguing semantics
             | 
             | I never have any clue what this retort means: when exactly
             | are semantics (the meanings of things) not important?
             | 
             | > Ford motor plant closes and the only places hiring are
             | software shops, you'd also be "fucked".
             | 
             | That's one hundred percent true but the difference is I
             | don't see assembly plant workers going around claiming they
             | learn technologies for breakfast (or lunch or dinner).
        
           | mtizim wrote:
           | As software developers we learn _software_ technologies for
           | breakfast, not entire industrial processes...
        
         | ransom1538 wrote:
         | "you won't have difficulty in learning X, just take a few days
         | in learning X"
         | 
         | It isn't 2020 anymore. No. No, one is going to hire someone
         | that is going to learn "react on the fly".
        
         | hamburglar wrote:
         | > As software developers we learn technologies for breakfast.
         | ... > I have worked for years with PHP, Apache, Ansible and
         | MySQL.
         | 
         | As much as I agree with your general sentiment that adaptation
         | is one of our primary skills in this industry, these two
         | statements combine to sound like parody. You "eat new
         | technologies for breakfast" but PHP and Apache are in your
         | short list of technologies you've used for years?
         | 
         | > And in 7 years I'll be using something else.
         | 
         | And 7 years for your prediction of when you'll be using a
         | different technology is both oddly specific and oddly long.
         | 
         | Apologies if this comment actually is parody and it's just
         | flown over my head.
        
         | BiteCode_dev wrote:
         | It's one thing knowing the language, it's another being
         | productive with the ecosystem.
         | 
         | One takes between a few days and a few months. The other is a
         | few years, unless you get pro training.
         | 
         | I guarantee most people starting with Python from another
         | language will be productive quickly. But they will curse the
         | packaging ecosystem because they will follow a lot of tutorials
         | that don't follow this:
         | 
         | https://bitecode.substack.com/p/why-not-tell-people-to-simpl...
         | 
         | And they'll get screwed.
         | 
         | They will have a hard time learning this:
         | 
         | https://www.bitecode.dev/p/relieving-your-python-packaging-p...
         | 
         | It will take a long time of trials and errors, suffering all
         | the way.
         | 
         | And this is true for many other aspects: good editor config,
         | good web deployment story, good app sharing system, good
         | tooling setup, etc
         | 
         | A runtime or a stlib is quite small and stable. But an
         | ecosystem is gigantic and moving.
        
           | dmix wrote:
           | Yeah I learned Ruby on Rails very quickly a long time ago,
           | it's probably one of the most accessible frameworks to learn,
           | but it took me years to master all the weird quirks, dev
           | environment stuff, debugging, production deployment etc. Plus
           | from all the years doing it I'm familiar with all the old
           | libraries so when you join a company with a large legacy code
           | base, which at this point is very common for rails, I don't
           | have to spend forever learning the details of some 7yr old
           | implentation no one uses anymore.
           | 
           | Working with senior devs who have only been doing it for
           | 1-2yrs is where you see the small productivity differences
           | that aren't simply being a newbie programmer.
        
           | BlargMcLarg wrote:
           | You're seriously arguing that someone with general knowledge
           | of programming is going to get hard-stuck not knowing
           | specifics of a language you and thousands of others have
           | blogposted about for years, while linking your own posts?
           | 
           | Let's be real here. What percentage of companies are in _dire
           | need_ of  'experienced [language] programmers' who know these
           | specifics that haven't already been set by previous devs or
           | have another developer present to make the decisions? That's
           | a tiny, tiny percentage of the entire job market, with much
           | of the demand coming from companies with incredibly shaky
           | foundations.
           | 
           | Almost the entirety of this is a luxury problem put on the
           | individual. The moment the job market says they can't demand
           | it anymore, they won't.
        
             | BiteCode_dev wrote:
             | Yes.
             | 
             | Last week I talked with a guy who was pitching to rewrite
             | their entire product in another language because he never
             | heard of python GIS ecoshst and was doing spatial
             | calculations by hand. Would cost hundred of thousand euros.
             | 
             | The HN bubble strikes again.
        
           | pjmlp wrote:
           | Indeed, I talk about lots of stuff, as an old dev that has
           | been through lot of stuff.
           | 
           | However if I need to do quiz, or coding exercise, closed book
           | style, only Java and C#, to a lesser extent C++, would be a
           | viable option for me.
        
           | coffeebeqn wrote:
           | I don't agree at all. I was productive within a month in a
           | completely new language and stack at my current job for
           | example. Once you know a few inside out, it's just pattern
           | matching with some Googling of "what's X in Y language".
           | 
           | Extremely deep knowledge of a language is very rarely needed,
           | even when it is as long as you can somewhat vocalize the
           | problem it's just debugging
        
         | scarface_74 wrote:
         | Yes because I know Java (hypothetically I haven't touched Java
         | since two years after it was introduced) I can become an
         | efficient Android developer "in a few days".
         | 
         | Better yet, since I did Windows CE development for ruggedized
         | devices using C# Compact framework back between 2007-2010, I
         | should have no problem picking up iOS development "in a few
         | days" and start being a productive member of a team right? Or
         | better yet, leading a team?
         | 
         | Third thing, I know the fundamentals of web development
         | including JavaScript, HTML and CSS. But I haven't done anything
         | on the front end since 2012. Are you going to hire me to help
         | create your website when you're looking for a modern web
         | developer?
         | 
         | Learning a language is easy. Modern development requires
         | knowing the toolchain framework, idiosyncrasies, foot guns,
         | best practices, etc.
         | 
         | These days, I am only looking for jobs where I have some type
         | of team lead/architect position. Are you going to hire me to
         | lead a team working on a 10 year old complicated Java app when
         | all of my "enterprise" experience is in the .Net ecosystem?
         | 
         | On another note: I haven't randomly submitted my job to an ATS
         | worrying about an "HR" screen since 2008 across 5 jobs. I've
         | always either reached out to my network or had someone reach
         | out to me.
        
           | jmull wrote:
           | > Modern development requires knowing the toolchain
           | framework, idiosyncrasies, foot guns, best practices, etc.
           | 
           | All this stuff is the same as learning the details of the
           | language. Once you know the pattern it's not hard to use it
           | in a context with incidental differences in details. It's
           | usually more than days, but can easily be weeks or months --
           | it depends on how well you really know the patterns. If you
           | really know them it is just days.
           | 
           | But being hired is a completely different thing. Hiring
           | managers (1) don't understand any of this, generally; and (2)
           | in any case, have no way to directly determine whether a
           | candidate really knows all the relevant patterns. They use
           | past direct experience with the technology as an
           | approximation (a pretty poor one, but it's easy).
           | 
           | Personally, I've done many jobs successfully on stacks I
           | didn't have previous experience with, almost always as lead
           | or sole. But of course, I got these jobs through people who
           | know me, not a random hiring manager.
           | 
           | (BTW, the skills most important for a lead/architect type
           | have nothing to do with specific technologies. You're making
           | sure the project/team/product/business doesn't run into dead
           | ends and progresses efficiently, daily, in the short term,
           | the medium term, and the long term, and balancing their
           | conflicting needs. Probably less than half of this is tech at
           | all.)
        
             | scarface_74 wrote:
             | My job as a lead was three fold and from my recent
             | interviewing based on the jobs I'm currently looking at
             | it's the same (cloud+app dev)
             | 
             | 1. Working with external/internal stakeholders to define
             | business outcomes and deal with ambiguity and doing project
             | management - from my experience at AWS (ProServe) you can
             | be _really_ good at this with hardly any technical
             | proficiency
             | 
             | 2. Determining what is the right service or combination of
             | services to use and the overall architectural design. I
             | could do this without any specific platform knowledge - I
             | know what type of database I need. I know I need a
             | messaging bus. I know the trade offs of different types of
             | technologies.
             | 
             | I was able to go from never opening the AWS console to
             | working at AWS in the cloud consulting department within 2
             | years. But I sucked during those two years while I was
             | learning the ropes.
             | 
             | 3. Using the "right" one of the literally 100+ services and
             | being able to mentor junior consultants and help them
             | troubleshoot complex issues.
             | 
             | The 3rd bullet point is where you need someone who has the
             | specific skillset.
             | 
             | My experience at the second bullet point is the downside of
             | hiring someone based on "potential". The CTO who hired me
             | threw me at the cloud initiatives without experience and
             | let me figure it out. But paid me $30K less than he would
             | have had to pay someone with experience. He would have
             | never been able to push through the 20%+ raise I would have
             | been looking for when I left 2 years later if I had stayed
             | on that side of enterprise dev/BigTech compensation side.
             | 
             | He definitely couldn't push through the 50% raise I ended
             | up getting at BigTech.
             | 
             | Now that I did my bid and the pay/bullshit ratio is going
             | too much in the wrong direction, I can go back to my former
             | company (since been acquired) and ask for about the same I
             | would have been asking for three years ago (a lot less than
             | I was making at BigTech)
        
             | malux85 wrote:
             | I'm a senior dev, having coded commercially for 20 years
             | now, and I think you are correct.
             | 
             | In my time, I have been an embedded C developer, a kernel
             | developer, MFC C++, then J2EE, then Mobile C# .NET, then
             | Python we dev, Python DS, Python Scientific, DevOps, WebDev
             | 
             | These aren't trivial projects, but entire systems, E.g. I
             | solo built https://atomictessellator.com just to scratch my
             | own itch learning quantum chemistry simulators.
             | 
             | I think you are 100% right, at about the 10-15 year mark
             | learning new languages and tooling really is a matter of
             | days, maybe a week if the tooling is very different. That's
             | 1 week from no experience in a language to "employable,
             | productive member of a team"
             | 
             | At some point it all just clicks, I suspect the people
             | above who are disagreeing and likely devs with maybe only
             | 5-6 years experience who this hasn't happened for yet.
        
               | scarface_74 wrote:
               | Were you able to mentor juniors in best practices and see
               | the foot guns that could happen based on your experience?
               | 
               | BTW, I'm using the definition of senior developer as
               | defined by large tech companies - the whole "scope",
               | "impact", "dealing with ambiguity", "leading initiatives"
               | metrics not "I code really well".
               | 
               | My experience on the enterprise dev side (1996-2020 and
               | going back on that side now), is that titles mean very
               | little outside of tech companies with leveling
               | guidelines.
               | 
               | BTW, the last time I had only six years of professional
               | experience was 2002.
               | 
               | The last time I only had six years of programming
               | experience was 1992. By then I had done assembly language
               | programming as hobby on four architectures (65C02, 68K,
               | PPC and x86)
        
           | sanderjd wrote:
           | Personally, yeah, I would have no trouble hiring you for any
           | of those things, based on your experiences. I wouldn't have
           | expectations that you'd be the most productive member of
           | those teams "in a few days", but a few months, sure. And I
           | would expect your wisdom from working on a bunch of different
           | things to be a lot more impactful than whatever fine grained
           | details you don't yet know of the exact technology we're
           | using.
        
             | listenallyall wrote:
             | You're saying that in isolation. If you have 50 other
             | resumes on your desk for a React job, there's no way you're
             | going to choose the guy who hasn't touched front-end since
             | 2012.
        
               | moron4hire wrote:
               | That's not been my experience with hiring. My experience
               | has been that 9 out of 10 resumes that cross my desk have
               | almost no relevant job experience _at all_.
               | 
               | I'd love to have someone apply to a .NET desktop app
               | position with 5 years of solid experience building Java
               | web services. I'd love to fill a Node.js web service
               | position with at least someone who spent 10 years writing
               | embedded C for home automation devices. Hell, I'll take a
               | brand new CS grad who built a janky Unity3D app in their
               | spare time, not because it was a school project, but
               | because they just wanted to.
               | 
               | What I get is IT network technicians who took a
               | programming certification, substitute teachers who 15
               | years ago did software QA testing, public policy majors
               | who dabbled with Matlab or Python in grad school, boot
               | camp grads who haven't touched programming again since
               | they finished their 8 week course 10 months ago. People
               | who have never had any experience with the care and
               | feeding of any kind of software project that other people
               | had to work with them on for any significant time.
               | 
               | I'll get 1 resume out of the batch (and they always come
               | in groups of 10) that is just a software developer: for
               | whatever N years of experience, at least the most recent
               | .8N has been software. Then it comes down to figuring out
               | if they were actually a contributing member or spent most
               | of their time hiding in a large team.
        
               | listenallyall wrote:
               | > My experience has been that 9 out of 10 resumes that
               | cross my desk have almost no relevant job experience at
               | all.
               | 
               | We're all out here shedding a tear for you. Not too sure
               | what you expect, as they say, the real talent doesn't
               | need to apply to job postings and submit resumes blindly.
               | With that said, is there anything in your .NET desktop
               | job posting that would encourage a Java web service
               | developer to apply? The first day of every month a bunch
               | of people with widely varying backgrounds and experience
               | post on this very site that they are seeking work... ever
               | reach out to any of them?
        
               | scarface_74 wrote:
               | This is what I find amazing about a lot of the replies I
               | see here. I saw the writing on the wall four months ago
               | that I was probably going to be "Amazoned" soon after my
               | manager left.
               | 
               | I've been warming up my network like crazy over the past
               | four months, preparing my resume and career document,
               | etc. I keep my network semi-warm regardless.
               | 
               | When the day came and I had the offer to quit and get big
               | check or stay, I chose the quit option, before my last
               | day, I had one manager trying to create a position for
               | me, a second round scheduled with another former company
               | and a third and final round scheduled at a third company.
               | 
               | All based on networking.
               | 
               | It's foolish in this market to hope something is going to
               | happen quickly by randomly uploading your resume to an
               | ATS and keyword stuffing your resume like an SEO
               | technique from the 90s trying to juice your position on
               | Altavista.
               | 
               | On the hiring side, a hiring manager also needs a network
               | that they can call on when trying to find candidates.
        
               | scarface_74 wrote:
               | I agree completely. Even if I did learn React. I still
               | wouldn't know the tricks to make a modern, usable,
               | website. I would be no good as lead responsible for
               | giving input on best practices and strategy.
        
               | lampshades wrote:
               | I've interviewed a lot of candidates over my years and
               | technology specific information isn't something I ever
               | look for, unless money is tight.
        
               | jgoodhcg wrote:
               | > unless money is tight
               | 
               | The software dev job market is cooling down. Making good
               | choices on what to build experience in is more important
               | than it has been in recent years.
               | 
               | I think many companies, including mine, are thinking they
               | have only a few spots to fill and a lot of candidates to
               | consider. I know we consistently say things like "who
               | will be productive quickly?"
        
               | tmpX7dMeXU wrote:
               | I've done this exact thing. Stop telling people how
               | they'd act.
        
               | tomcam wrote:
               | Stop telling me how I should stop telling people how
               | they'd act!
               | 
               | I kid.
        
           | wrayjustin wrote:
           | Your hyperbolic comment is not far from reality when applied
           | correctly.
           | 
           | I've long said, and would stand by: Programming/Development
           | is logic; learn logic. Languages are just syntax; if you
           | understand logic, you _can_ learn the syntax.
           | 
           | Taking concepts from one language to another shouldn't be an
           | onerous task.
           | 
           | Of course, none of that means you'll get that _senior_
           | language -focused position, or any particular position at
           | all.
           | 
           | But let's not act like picking up a new language, for a
           | developer, is the equivalent of switching from development to
           | medical practices, or even networking/system
           | administration/etc.
        
             | scarface_74 wrote:
             | The first language I used professionally was C and I
             | programmed console apps on DEC VAX and Stratus VOS
             | mainframes. All I really needed to know was standard C.
             | 
             | Guess how long the learning curve was at my next job where
             | I had the learn the intricacies of Win32/MFC, COM and DCOM,
             | when to use which of the 8 different methods that Microsoft
             | had of defining a string and how to safely convert between
             | them, why my C++/ATL COM object kept crashing the other
             | developers VB apps because I wasn't doing reference
             | counters correctly...
        
           | ianlevesque wrote:
           | > Are you going to hire me to lead a team working on a 10
           | year old complicated Java app when all of my "enterprise"
           | experience is in the .Net ecosystem?
           | 
           | Yes. The skills are fungible.
        
             | scarface_74 wrote:
             | And I would be a horrible hire to lead a team where I'm
             | expected to mentor junior developers on best practices,
             | which packages to use, how best to work with technical
             | debt, etc.
             | 
             | In the real world, I'm interviewing for positions where
             | they are looking for leads at cloud consulting companies
             | who can mentor juniors and that they can put in front of
             | customers for recommendations, estimating statements of
             | work for implementations on AWS and it's specializing in
             | application development where you are integrating with AWS
             | services. I have lots of experience with most things AWS.
             | 
             | No one should hire me to do the same for either Azure or
             | GCP. Sure I could do the initial discovery, pre-sales,
             | needs analysis, business outcomes, etc. But I wouldn't have
             | a clue about what services to use and i definitely couldn't
             | mentor and help troubleshoot implementations on Azure or
             | GCP.
        
               | linuxftw wrote:
               | How hard is it to find a few mainstream opensource
               | projects and emulate what they're doing in a given
               | language when it comes to packaging and best practices?
               | 
               | Other than awful, unsuitable for production languages
               | like ruby.
        
               | scarface_74 wrote:
               | Most open source solutions are meant to be building
               | blocks for larger projects. It's up to you to know what's
               | best for your organization based on prior experience. If
               | you're not in the C# ecosystem would you know how badly
               | you are shooting yourself in the foot using Entity
               | Framework when you should be using Dapper (a micro ORM
               | invented and used by Stack Exchange)?
               | 
               | On the other hand, would you know the limitations of
               | Dapper until your system grew and you found out that you
               | really needed EF but because you didn't know the
               | tradeoffs you didn't know what to look out for?
        
               | linuxftw wrote:
               | I don't write crud apps, but if I did, I'm sure I could
               | sort out which ORM is the right one for my usecase.
        
               | scarface_74 wrote:
               | "I don't have any experience that is relevant to most of
               | the 2.7 million developers. But I'm sure about my
               | opinions"
        
               | linuxftw wrote:
               | Right. You have experience doing what everyone else does,
               | aka, replaceable.
        
               | scarface_74 wrote:
               | Everyone is replaceable. If you get hit by a bus tomorrow
               | your company will have an open req for your position
               | before your body gets cold.
               | 
               | They will send your next of kin "thoughts and prayers"
               | and you will soon only be remembered when someone sees
               | your name while doing a "git blame"
               | 
               | A less morbid example, what I call the "are you
               | replaceable test". Can you can hit on your boss's spouse
               | repeatedly at the Christmas party and have a job the next
               | year?
        
             | mgkimsal wrote:
             | While that might be the 'right' answer, it's also in the
             | minority for many job openings/postings.
        
               | ianlevesque wrote:
               | You're not wrong, but thankfully job openings are more
               | fungible than ever too, with remote positions open at
               | plenty of companies that won't make that particular
               | (not-)hiring mistake.
        
               | scarface_74 wrote:
               | Remote positions make it easier not harder to find
               | someone with the skills fit that a company needs and
               | makes any position more competitive.
               | 
               | When companies were looking for "a C# developer who knew
               | the latest front end framework who was willing to commute
               | to the office in midtown Atlanta" the pool was a lot
               | smaller than "someone legally allowed to work in the US"
        
               | pjmlp wrote:
               | Actually it is more like legally to work anywhere, for
               | some kind of positions.
        
               | sanderjd wrote:
               | Yep, this is true. But that just means that it's
               | something of a super power for organizations that don't
               | make this myopic mistake.
        
           | lusus_naturae wrote:
           | I think GPs approach works for junior roles where learning on
           | the job is acceptable. You're right that it would create pain
           | for everyone if the lead/senior guy is having daily struggle
           | sessions as opposed to taking the work to the next level.
        
           | coldtea wrote:
           | > _Yes because I know Java (hypothetically I haven't touched
           | Java since two years after it was introduced) I can become an
           | efficient Android developer "in a few days"._
           | 
           | No, but you probably can in 6 months. Whereas if you hadn't
           | even touched any language and UI framework before, it would
           | have taken you a few years.
           | 
           | Does it have to happen "in a few days" to matter? Or the
           | hyperbole is to argue that past experience with different
           | languages and their concepts, and SDKs and their architecture
           | doesn't help going forward, because each of them is some kind
           | of unique snowflake?
        
             | scarface_74 wrote:
             | How much similarity do you think there is between modern
             | Android and C# Compact framework in 2008? The last time I
             | did any "mobile development"?
        
               | coldtea wrote:
               | Note how the parent said: "As software developers we
               | learn technologies for breakfast. We learn them, and then
               | we forget them. We recollect the wisdom gained and apply
               | it in our next gig using a different technology".
               | 
               | If you havent' done that with any technology for a full
               | 15 years in some domain, and so can't adapt to the
               | current framework used quickly, it's not like this
               | refutes the parent's comment.
               | 
               | The parent described a situation where you serially learn
               | new technologies and move on, which means there's a lot
               | of concepts that transfer fine, and things that gradually
               | change that you can more easily pick up in much smaller
               | time. If you had done Android development in 2018, it
               | wouldn't be that different to 2023.
        
           | hn_throwaway_99 wrote:
           | Thanks very much for posting this, totally agree. I get
           | frustrated when I hear all these missives about how easy it
           | is for any good developer to learn a new language "in a
           | couple days". I think this paragraph was key:
           | 
           | > Learning a language is easy. Modern development requires
           | knowing the toolchain framework, idiosyncrasies, foot guns,
           | best practices, etc.
           | 
           | That said, I still nearly always hire for general skills and
           | not specific technologies, _as long as_ there is at least one
           | expert in the specific tech under consideration on the team
           | (which there nearly always is). And I budget anywhere from
           | 3-6 months for a person to become truly proficient at a new
           | platform technology.
        
             | scarface_74 wrote:
             | And you are probably not going to pay me the same as
             | someone who already have the experience you are looking for
             | (and you probably shouldn't).
             | 
             | Because of the stupidity of hiring and raise practices (not
             | your fault as a hiring manager), you can get HR to open a
             | job req at market rates. But it's a lot harder to get HR to
             | allow you to give your current employees raises to get them
             | at market rate.
             | 
             | That investment is then lost because your employee is going
             | to jump ship.
        
               | convolvatron wrote:
               | its fundamentally wrong to treat your employees learning
               | process as a long term investment that you maintain
               | ownership of. paying someone for two months to come up to
               | speed is an investment. if they become productive in your
               | environment, that investment is very quickly paid off. if
               | they don't, then your at-risk investment didn't pay off.
               | the return is the work that you got from them afterwards.
               | you don't get to claim ownership of what's in their head.
               | 
               | if someone gives you two years of good work and moves on
               | because you aren't giving them what _they_ need, or
               | because their father got ill, you still came out way
               | ahead. you should be a human and accept that.
        
               | scarface_74 wrote:
               | They didn't though if I hired someone with no experience.
               | They gave me six months of negative work as they took
               | time away from the more experienced developers, did a
               | year and a half of resume driven development (if they are
               | smart) and then moved on.
               | 
               | If I hired someone with the experience I was looking for,
               | then they gave me 2 years of productive work.
               | 
               | Why would I train someone new instead of just poaching
               | your developer at market rates?
        
               | convolvatron wrote:
               | having a mix of experience levels is really healthy for
               | an organization.
               | 
               | streamlining onboarding and extracting the secret recipes
               | from the seniors is really valuable
               | 
               | there is no better understanding than that gained by
               | teaching
               | 
               | its clearly a higher risk investment, but often times
               | that one super workhorse and brilliant jewel is the one
               | that you helped grow
               | 
               | but yeah, I've had employees that just sat around
               | learning the latest fad and left. it happens. but if it
               | happens a lot then maybe you should look at your hiring
               | and management
               | 
               | if I convince someone to come work for me, its not
               | poaching. its life.
        
               | scarface_74 wrote:
               | > but if it happens a lot then maybe you should look at
               | your hiring and management
               | 
               | You as a hiring manager only have power of hiring and
               | management. Your HR department at the behest of their
               | management controls how much of a raise you can give your
               | employees.
               | 
               | You can give them the meaningless platitudes of "we are
               | family" for only so long.
        
             | spacemadness wrote:
             | Great, you learned swift and can do a bunch of leetcode
             | with it. It has nothing to do with actually managing a
             | complicated iOS software project with the zany decisions
             | that have gone into the framework design and tooling. Also
             | good luck with the lazy documentation from Apple and the
             | extremely contrived examples from educators. Can you learn
             | all this in somewhat reasonable time and not code something
             | horrific as a result? Absolutely, lots of people do. In a
             | couple days? Good luck.
        
               | fragmede wrote:
               | Not to out myself and my level of skill, but it took me
               | several days off and on just to wrap my head around the
               | minutiae to get Apple signing for macOS and iOS to work
               | just right. Learning the rest of the ecosystem came along
               | eventually, but I think the real point is with a couple
               | of days worth of intense study, I, and any other
               | developer worth their salt, can bullshit your interview
               | that requires a specific language, but no one requires a
               | specific language for interviews anymore because everyone
               | knows that!
        
               | scarface_74 wrote:
               | Do your interviewers not ask you to talk through your
               | real world experience?
        
             | sirsinsalot wrote:
             | I always read "learn" in this context as "be familiar
             | enough with the basic language properties that I can pick
             | the rest up on the job, get things done, and not be too
             | dangerous, or annoying in code review"
             | 
             | and when I read it that way I agree. Some of the best devs
             | I have hired had no prior experience in the stack.
             | 
             | I'm not hiring for Python or C#, I am hiring a software
             | engineer and the skills I value are all transferable.
        
               | scarface_74 wrote:
               | What about your tech leads who are looking for top of
               | market salary? By top of market, I mean within your
               | hiring pool not senior staff principal engineer level at
               | a hedge fund
        
               | sirsinsalot wrote:
               | What about them? I'm looking for someone who has lead a
               | team, solved that level of problems, has good soft skills
               | and leadership.
               | 
               | The language or stack is irrelevant.
               | 
               | A good lead knows the right questions to ask, understands
               | they don't have all the answers and plays to their own
               | and the teams strength.
               | 
               | Honestly the last thing I care about, especially here, is
               | if they know the stack.
        
               | scarface_74 wrote:
               | And the other part of "leading the team" is being able to
               | mentor juniors and help them technically.
               | 
               | What good is a lead if they can't _answer_ technical
               | questions and can't help other developers with technical
               | guidance?
               | 
               | What will it do for team morale on your iOS team when
               | they know you bought in a "lead" who couldn't actually
               | help them with the tough technical problems?
        
               | sirsinsalot wrote:
               | The team has a culture that knows full well someone is
               | brought in for who they are ... what they know might need
               | some catch up.
               | 
               | I'm not saying this is right in all circumstances. I
               | wouldn't do this with, for example, realtime embedded.
               | 
               | For what I operate in, fairly bland web applications and
               | stacks.
               | 
               | It works fine, exceptions excepted.
        
               | scarface_74 wrote:
               | The team has a culture where the leads know less than
               | they do and they are okay that?
        
               | sirsinsalot wrote:
               | You're generalising to win an argument.
               | 
               | The lead may know less than them about some things.
               | That's OK for us. But what's important is they know more
               | than the team about other things.
               | 
               | For example, we would rather have a lead that knows when
               | to say "How do you know this is performant? Show me." and
               | understands statistics and how to read perf dumps ...
               | than how to profile whatever PHP script or whatever
               | hands-on.
               | 
               | Sorry that contradicts the black-and-white world view
               | you're holding.
               | 
               | I also strongly believe good technical leadership is
               | about accepting you know _less_ than a team, and being
               | able to ask the right technical questions to the right
               | people who know more than you to ensure the best outcome.
               | 
               | You can do that with a ground knowledge of the stack,
               | picked up on the job, along with learning the
               | application's code and architecture. What a good
               | technical lead brings is a deep understanding of how to
               | manage complex people and systems by having done so
               | across different languages/stacks/architectures many
               | times.
               | 
               | Why would I turn away someone brilliant at that because
               | they happen to know Java but not Android development?
               | That's the easy bit to solve.
        
               | bluefirebrand wrote:
               | There is a persistent attitude that developers are
               | interchangeable, that the tech matters less than the
               | knowledge of how to apply tech to solve problems.
               | 
               | I think that for architecting systems that's probably
               | true, but as technology becomes more specialized and
               | ecosystems become more complex it's harder for
               | individuals to pick up and run with.
               | 
               | Consider if someone has written lots of PHP and jQuery
               | 
               | Now tell them to write a NodeJS server, React Frontend
               | using NextJS.
               | 
               | It's not just "Oh I need to pick up ExpressJS" anymore.
               | It's a whole beast.
               | 
               | Yeah the fundamentals stay the same. REST is still REST,
               | SQL is still SQL, but actually writing lines of code is
               | still a key activity of the job which people familiar
               | with the technology will be better at.
               | 
               | Personally I run into this any time I try and write C#.
               | There's a massive undercurrent of stuff that I feel I
               | don't understand about C# and I bounce off that ecosystem
               | every time I try
        
         | chaostheory wrote:
         | The probability of success is largely is based on the available
         | supply of developers vs the demand for them. Canada's market is
         | ok, but not great which is probably why so many Canadian
         | programmers immigrated south.
        
         | m3kw9 wrote:
         | Sure, but say you focused as a iOS developer you definitely
         | cannot tell the recruiter doing Android are the same. They wont
         | hire you if you say you have no Android experience, same thing
        
         | shipscode wrote:
         | Oh come on. Language specific knowledge is a game changer in
         | programming speed & efficiency. Likewise the level of effort to
         | understand modern React concepts has gone way up.
         | 
         | Deep React specialization is a great way to get most tech jobs.
         | Some interviewers literally just want to see if you can use
         | hooks in a solution. Applying a learners mindset in the middle
         | of an interview comes off as amateur.
         | 
         | Learn the tech stack you'll use on the job. It'll get you tons
         | of mid grade offers.
        
         | littlecranky67 wrote:
         | I agree, but unfortunately hiring managers, recruiter etc.
         | don't think like this. If you happen to find a person that is
         | tech-savy, they can asses your true skillsets and capabilitiy
         | of solving problems. Hiring managers and recruiter match
         | buzzwords in your CV.
         | 
         | I recently got rejected for a project from an agency (am a
         | contractor) because I did not have provable skills or knowledge
         | in "CI/CD". Stupid me, made the mistake of putting extensive
         | details about creating build and deployment pipelines with
         | Travis, GitLab, GitHub Actions, Azure Pipelines for each past
         | project going back to 2012, but did not specify the right
         | buzzword "CI/CD" for the recruiter...
        
           | tkiolp4 wrote:
           | > Hiring managers and recruiter match buzzwords in your CV
           | 
           | So? You put those buzzwords in your CV. What's difficult
           | about that? You feel like being dishonest? If so, again, just
           | explain in the next stage of the interview (with real
           | engineers) that you do have real world experience in similar
           | but not exactly the same technologies listed in your CV. You
           | just did so to pass through HR. Not a big deal (as long as
           | you're confident and believe you can learn technologies
           | easily)
        
             | dwattttt wrote:
             | I would assume the problem comes up the next time his CV
             | gets rejected for not having "Continuous Integration" on
             | it.
        
               | littlecranky67 wrote:
               | I have made some "SEO" optimizations as some agencies use
               | text-based CV matching. Some are upfront with it, with
               | others I observe it because I get a lot of Java project
               | requests (I never coded Java, but as a FE dev, have lots
               | of JavaScript in my CV text).
               | 
               | I'm gladly looking forward 3-5 years, when AI will handle
               | this CV analysis and match a project description from a
               | company to a proper candidate. Basic GPT can tell right
               | now if CI/CD matches "Azure Pipelines". Then we can fire
               | the lower 50-80% of unskilled recruiters that do not
               | provide any value to the market right now.
        
             | manfre wrote:
             | Blatantly lying on the CV is an instant rejection at the
             | places I've worked. It's one thing to stretch your
             | contributions on past projects, but to outright lie about
             | the technologies used is a huge red flag. It's easy to
             | teach a person the company tech stack, but I'm not sure
             | it's possible (or worthwhile) to try and teach some one to
             | be honest.
        
               | throwaway80492 wrote:
               | You don't need to make up projects you worked on with the
               | technology, you can just add it to your list of skills.
        
           | [deleted]
        
         | nicechianti wrote:
         | [dead]
        
         | demarq wrote:
         | Absolutely, I feel I could be employed tomorrow in a language
         | or stack that I haven't even heard of and start being
         | productive by the end of the week!
         | 
         | I seriously think you owe it to yourself to practice learning
         | something new every week. It often takes one afternoon to get a
         | "taste" and small side project to get beyond that.
         | 
         | Every programming language. Is literally just a template for
         | instructions, and every technology just an abstraction over
         | some crud somewhere.
        
           | scarface_74 wrote:
           | So could you be a productive iOS/Android developer in a week
           | with no previous experience?
        
             | carstenhag wrote:
             | During Covid I had a colleague, mainly web/js/angular dev,
             | join the Android team. It was a new project to him, so he
             | had 0 idea of the business problems, flows, etc.
             | 
             | In a timeframe of 1-2 weeks he was making PRs. It needed
             | quite some reviews from me, usually because he didn't know
             | about "how it should behave" on Android, or what the best
             | practices were in terms of using Kotlin or following our
             | architecture. After 2-3 months he was as proficient coding
             | as I basically (but we all know, coding is 50%).
        
             | ChrisMarshallNY wrote:
             | My experience is that learning a new language -at a basic
             | level- can be done quickly (like a couple of _weeks_ , not
             | days).
             | 
             | But learning it at an advanced level, is a whole different
             | matter.
             | 
             | I've been writing Swift since, literally, a few hours after
             | it was announced, in 2014. I write Swift every day (like,
             | seven days a week), and have been, since that first day.
             | 
             | I feel as if I have only had "mastery" of the language for
             | the last couple of years. There's still plenty for me to
             | learn, and they keep adding more stuff.
             | 
             | But the language isn't the big deal. The deal for me, is
             | the fundamental SDK/API/Framework. That has been an ongoing
             | project since 1986. As soon as I learn one API, they change
             | it up (and sometimes, the entire OS).
             | 
             | During that time, I've written in 68K ASM, Pascal, Object
             | Pascal, C, C+- (the weird THINK C variant), C++. ObjC, and
             | Swift. I've worked with MacApp, OpenDoc(!), Think Libraries
             | (Pascal and C), PowerPlant, and Cocoa (and its expression
             | in iOS, WatchOS, AppKit, and TVOS).
             | 
             | I've always considered hiring folks to be an investment. As
             | a manager, I always looked for folks that had the
             | fundamentals down, and assumed that I could train them into
             | what we need. Most of the work we did, was way beyond
             | anything you'd find in textbooks. I was under no illusion
             | that I could hire folks that would be able to start on it
             | right away.
             | 
             | That was why my team was always one that I wanted to keep
             | whole and cohesive, over many years. I can't even imagine
             | today's 18-month engineer lifetime. I kept my engineers for
             | many years, and that wasn't easy.
        
               | scarface_74 wrote:
               | I just said something similar in another reply
               | 
               | https://news.ycombinator.com/item?id=37099395
               | 
               | But as far as employees being an "investment" let's look
               | at things from the employee side.
               | 
               | For context: these numbers I'm about to cite are correct
               | to within a first approximation on the "enterprise dev"
               | side where most of the 2.7 million developers work and in
               | most major cities in the US that are not on the west
               | coast or in NYC
               | 
               | Let's say you hire a Junior/mid level developer and offer
               | them $100K which is fair knowing they are going to do
               | "negative work" for the first few months as an
               | investment. Two years later, they have experience and now
               | can apply for companies that are looking for experienced
               | iOS developers. Their market rate shot up to $135k.
               | 
               | Because of salary compression and inversion, you're not
               | going to be able to pay them 35% more in two years
               | because of HR policies. Yet you can bring in new
               | experienced iOS developers at market rate. If he's smart
               | your employee is going to jump ship, wasting a lot of
               | your "investment".
               | 
               | As a hiring manager, knowing that statistically I'm only
               | going to get two years out of an employee, why wouldn't I
               | just poach the person you just trained and pay them the
               | $135K you couldn't?
               | 
               | Another scenario is that now that developer has been
               | reading r/cscareerquestions and decided to "grind
               | leetcode and work for a FAANG". Now he's looking at
               | $200K+ as a mid level developer adding yet more bloat to
               | the Facebook app.
               | 
               | You couldn't compete with that if you wanted to.
        
               | ChrisMarshallNY wrote:
               | _> You couldn't compete with that if you wanted to._
               | 
               | Unfortunately, I was forced to.
               | 
               | My company was one that paid "competitive" salaries.
               | 
               | That's code for "below average."
               | 
               | This filtered out 90% of applicants, right there.
               | 
               | So the ones that applied, did so, out of genuine interest
               | in the company and the technology (we were a "marquee"
               | company).
               | 
               | I was forced to look for "diamonds in the rough," and
               | became fairly good at evaluating whether or not someone
               | could handle the tech and the learning.
               | 
               | I kept them, by being a really good manager. I treated
               | them with respect, didn't burn them out, and shielded
               | them from a lot of the corporate BS. They appreciated
               | that, and stayed.
               | 
               | When our team was finally rolled up, after just short of
               | 27 years, the employee with the _least_ tenure had ten
               | years. These were seasoned C++ image processing
               | professionals.
        
               | scarface_74 wrote:
               | Most of those 2.7 million developers I spoke about will
               | never make low end FAANG money and that's perfectly fine.
               | 
               | I had my first house built in the burbs of Atlanta in
               | 2002 making $60k (2500 square feet) and my second house
               | built in the northern burbs (3200 square feet) making
               | $135K in 2016 [1].
               | 
               | I only fell into a remote role at BigTech in 2020 at 46
               | years old after declining a chance to interview for a
               | software development position and being offered a chance
               | to interview for a position in the Professional Services
               | division doing cloud consulting [2].
               | 
               | I was perfectly happy living the upper middle class
               | lifestyle in 2020 making _only_ $150k with my wife making
               | $20K working part time.
               | 
               | In fact, I'm excited to get back to working at small
               | companies on the high end of enterprise dev comp because
               | my department became too "Amazonian" this year and my
               | shit tolerance level is extremely low.
               | 
               | [1] 2002-2012 was a decade of bad life and career
               | decisions that I didn't recover from completely until
               | 2018.
               | 
               | [2] I did my bid, saved money and paid off debt and our
               | bills are actually $1000+ lower per month now than they
               | were when I started.
        
               | sanderjd wrote:
               | > _you're not going to be able to pay them 35% more in
               | two years because of HR policies_
               | 
               | Seems like you just identified the issue. You're right,
               | of course, that the "invest in employees" approach
               | doesn't work at companies that have a corporate policy to
               | not invest in employees.
               | 
               | Investing in employees is a top-down strategy, not a
               | bottom-up one. If there isn't support for it at the top,
               | then you're right, it won't work.
        
               | scarface_74 wrote:
               | And it's not just smaller companies - my experience of
               | n=1 at BigTech companies is that to get ahead, it's best
               | to "boomerang".
               | 
               | Besides even at BigTech, it's much easier to get a higher
               | level position at another comparable company than go
               | through the promotion process.
        
             | demarq wrote:
             | Clearly you read my response and felt some doubt
        
             | doix wrote:
             | Not iOS, but I'm fairly confident I could be productive in
             | an Android codebase in a week.
             | 
             | The only reason I don't think I could do iOS is because I'd
             | need to use a OSX, and I think it would take me longer to
             | become productive in OSX.
             | 
             | It also depends on what you mean by "productive", would I
             | want to lead a team to create a new app from scratch?
             | Probably not. Go into an existing app and start fixing bugs
             | and creating new features? Sure.
             | 
             | I did a trial week before joining my current gig full-time.
             | I had pretty much no typescript experience, came into a
             | large TS react/nodejs app and had a pull request on the 2nd
             | day for a new feature.
             | 
             | I wouldn't try to work on a Haskell or OCaml codebase, they
             | are different enough that I'm not confident I could pick
             | them up quickly. But most mainstream languages are similar
             | enough that it really shouldn't be that hard to pick them
             | up and be productive.
        
               | pjmlp wrote:
               | As someone that has done on and off Android programming
               | as hobby since NDK was introduced in Android 2.2, and
               | regularly follows ADB Podcast, I doubt it.
               | 
               | Every Android version is basically a reboot in many parts
               | of the framework, the device fragmentation is hardly any
               | better than J2ME days, several features are only
               | documented via samples or Google IO talks, Gradle plugins
               | require rewrites between upgrades, and each Android
               | Studio release is a box of surprises what quirks it has.
        
               | doix wrote:
               | I think it really depends on what your definition of
               | "productive" is.
               | 
               | Let me try and quantify it. I looked through my apps that
               | I installed from F-Droid, then looked at their GitHub
               | issues and picked one [0]. I bet I could implement that
               | in less than a week with 0 Android development
               | experience.
               | 
               | > Every Android version is basically a reboot in many
               | parts of the framework, the device fragmentation is
               | hardly any better than J2ME days, several features are
               | only documented via samples or Google IO talks, Gradle
               | plugins require rewrites between upgrades, and each
               | Android Studio release is a box of surprises what quirks
               | it has.
               | 
               | Does any of that really matter if you're hiring someone
               | into an existing org? Doesn't Android have amazing
               | backwards compatibility? I'm sure I have some dice app
               | from 2012 that still runs. The company is probably
               | targeting some version of Android and isn't changing to
               | the latest one every time a new version is released.
               | 
               | [0] https://github.com/tasks/tasks/issues/2435
        
               | pjmlp wrote:
               | Already with that response you have proved not to
               | understand the Android ecosystem.
               | 
               | No it doesn't have an amazing backwards compatibility,
               | specially depending on what is cool in one Google IO, and
               | already legacy in the new one, without replacement, like
               | e.g. Tango, Sceneform, Fragments.
               | 
               | There are policy rules how old an Android app is allowed
               | to be in Play Store.
        
               | scarface_74 wrote:
               | Are you trying to find a job as a journeyman developer
               | (nothing wrong with that) or are you trying to lead a
               | team or be a senior where you are expected to be
               | productive from day one and maybe mentor developers and
               | be more strategic?
               | 
               | Would you hire me someone who not only doesn't know
               | anything about Android development but doesn't even
               | follow the ecosystem and the current trends?
        
               | doix wrote:
               | If I was looking for a job, I'd say that I have no
               | professional Android experience but I'm confident that I
               | could hit the ground running at a senior level and mentor
               | juniors for Android.
               | 
               | I mean, in this hypothetical scenario, I've decided that
               | I want a job as an Android developer. So I would take my
               | own time to learn Android whilst interviewing. By the
               | time I got a job, I'm confident I'd hit the ground
               | running.
               | 
               | I wouldn't try to apply for a job to lead an Android team
               | without at least working in one first. I'm sure some
               | people do, but I'm not that confident ;).
               | 
               | > Would you hire me someone who not only doesn't know
               | anything about Android development but doesn't even
               | follow the ecosystem and the current trends?
               | 
               | I wouldn't hire you because you don't sound like you
               | think you could do it.
               | 
               | If I was interviewing someone and they said something
               | like: "I have no experience with Android, but I know
               | Kotlin and I'm confident I could pick it up. I did a
               | similar thing with x,y,z" then sure.
        
               | scarface_74 wrote:
               | > If I was looking for a job, I'd say that I have no
               | professional Android experience but I'm confident that I
               | could hit the ground running at a senior level and mentor
               | juniors for Android
               | 
               | I can say I'm a little teapot. But without demonstrated
               | experience, why would you hire me over one of the million
               | developers with experience and have at least shipped an
               | app?
               | 
               | > If I was interviewing someone and they said something
               | like: "I have no experience with Android, but I know
               | Kotlin and I'm confident I could pick it up. I did a
               | similar thing with x,y,z" then sure.
               | 
               | Yes because "positive thoughts" without experience means
               | you can be effective
        
               | lawgimenez wrote:
               | You could be productive in a not-so complicated Android
               | codebase in a week.
        
               | scarface_74 wrote:
               | > It also depends on what you mean by "productive", would
               | I want to lead a team to create a new app from scratch?
               | Probably not. Go into an existing app and start fixing
               | bugs and creating new features? Sure.
               | 
               | As someone with experience, are you actually applying for
               | jobs where you would just be pulling stories off the
               | board doing "feature work"?
               | 
               | And let's take your example. What's the chance of me
               | being productively able to create a feature in a
               | Typescript/React app seeing that I haven't done front end
               | work since 2015 and even then it was server side
               | rendering with ASP.Net MVC and bootstrap.
        
               | doix wrote:
               | > As someone with experience, are you actually applying
               | for jobs where you would just be pulling stories off the
               | board doing "feature work"?
               | 
               | I dislike the whole Agile stories/points/sprints thing,
               | so probably not those jobs. But if you're asking if I'm
               | applying to jobs where I write code, then yep! I love
               | writing code and building things.
               | 
               | > And let's take your example. What's the chance of me
               | being productively able to create a feature in a
               | Typescript/React app seeing that I haven't done front end
               | work since 2015 and even then it was server side
               | rendering with ASP.Net MVC and bootstrap.
               | 
               | I don't know what other experience you have, but
               | probably. At my previous job, I got a bunch of silicon
               | production test engineers, that spend most of their day
               | writing VBA, "productive" in React within a week.
               | 
               | I setup the base of the application and sorted out the
               | routing, state management and abstractions for dealing
               | with our data. But they were writing views and features
               | after a week pretty well. I had to point out some
               | performance issues in code reviews but that was mainly
               | it.
        
               | scarface_74 wrote:
               | > I don't know what other experience you have, but
               | probably. At my previous job, I got a bunch of silicon
               | production test engineers, that spend most of their day
               | writing VBA, "productive" in React within a week.
               | 
               | It depends on your definition of "production". I got a
               | couple of developers who had spent a decade+ supporting a
               | PowerBuilder app and writing stored procedures.
               | 
               | Their C# code was a horrible mess.
               | 
               | My former CTO (55 years old and his idea of research was
               | coding POCs - smart guy), said he wouldn't hire "old
               | people" any more to do front end work because their front
               | end designs weren't as good as people who started out
               | doing front end work and have been doing it for years.
               | 
               | All of his back end developers/architects were older.
        
               | criddell wrote:
               | If your resume shows you job hop regularly, then I'm
               | going to want you to be productive very quickly.
               | 
               | If your resume gives me the impression that you are
               | likely to still be working here for enough years, then
               | I'll give you time to get up to speed. If you were a
               | really great front end developer in 2015, I suspect you
               | can figure out Typescript/React.
        
               | scarface_74 wrote:
               | I sucked back then too at front end development :).
               | 
               | I knew enough to copy/paste/pattern match an existing
               | page and make the necessary change. But you start me with
               | a blank slate and give me a mock-up, I would end up using
               | tables and frames like it's 1999.
        
             | sanderjd wrote:
             | I think all the "a few days" and "a week" stuff that
             | generates these kinds of debate is a total red herring.
             | Yes, it's hyperbole. But it's also true that people with
             | experience successfully applying a bunch of different
             | technologies are great hires onto a team using a technology
             | they don't yet know. It's just a process measured in months
             | rather than days. But if you need to hire someone because
             | you have something that needs to get done _this week_ ,
             | then you've already screwed up.
        
               | scarface_74 wrote:
               | And then it gets back to my other argument. Are you going
               | to pay someone the same that doesn't fit your technical
               | needs as you would someone who does? If you pay them
               | less, are your raise policies going to allow you to get
               | them to market value once they do have the skillset or
               | are they going to end up job hopping?
        
             | em-bee wrote:
             | i did this with php and python in two different jobs. i had
             | very little php experience and never worked with any php
             | framework before, but the team i was in consisted mostly of
             | junior developers, so i ended up writing better code than
             | any of them except the team lead. laravel was also very
             | easy to understand.
             | 
             | at another job i started with only some rudimentary python
             | experience. they had an inhouse framework, so being deeply
             | familiar with python frameworks and libraries would not
             | have even helped me. they knew i had experience in other
             | languages and it worked out pretty well.
             | 
             | most recently i had an interview where it was very clear
             | that i haven't done any work on go before. at least during
             | the interview that was not an issue. after the interview
             | they wanted me to send them code examples of previous work.
             | i didn't get the job, but i don't think lack of go
             | experience was the problem.
        
         | o_m wrote:
         | Everyone goes through this once. A lot of your knowledge
         | suddenly aren't needed anymore because of external factors. For
         | me it was Flash. I've seen colleges being afraid of learning
         | new technology after being burned once. Now my skills are
         | learning new skills.
        
           | coffeebeqn wrote:
           | I also did Flash for a long time. 10 years later it's not
           | like that experience is mostly lost. When I write typescript
           | I get a dejavu to AS3. Plus knowledge of VMs, garbage
           | collection and all the other programming concepts translates
           | to most languages
        
       | pshc wrote:
       | And yet the company where I work can't find enough Flutter
       | talent.
        
       | Gud wrote:
       | Learn multiple stacks, all the way down from JavaScript down to
       | the circuit breakers. It will make you an overall better
       | technician.
        
       | zigzag312 wrote:
       | Dart is my biggest issue with Flutter. It's still missing
       | ergonomic features like data classes and lower level things like
       | unsigned 64-bit integers. There is no runtime reflection, which I
       | think is a good thing for end user apps, but it's also missing
       | static metaprogramming. And code generation is not integrated
       | into a complier. Since, there is no runtime reflection,
       | metaprogramming & integrated code-gen are sorely needed.
       | 
       | Flutter itself is slowly reaching maturity on mobile and is
       | already quite good, if you can live with a few compromises.
        
         | tjpnz wrote:
         | I don't understand why this language exists. It just feels like
         | a promotion vehicle by someone at Google who had enough clout
         | to then get it shoehorned in to Flutter. If they had gone with
         | JavaScript they could've made the switch to TypeScript later
         | on. I realise this is being said with the benefit of hindsight
         | but Flutter would be in a far better place today I suspect.
        
           | zigzag312 wrote:
           | It compiles AOT to native code and supports tree shaking. It
           | also has JIT mode with hot reloading/restarting. It has sound
           | null safety and is statically typed.
           | 
           | It's not a bad language. It just lacks some needed features.
           | They'll probably get implemented over a span of a few years.
           | 
           | Ecosystem is small, but at least there's FFI interop.
           | 
           | It also has some baggage from it's early days when it was
           | meant as JavaScript replacement. Since we now have WASM (and
           | soon WASM-GC) I think it would be best, if compilation to JS
           | would be dropped, so more low level features can be
           | implemented.
        
             | bsder wrote:
             | > Ecosystem is small, but at least there's FFI interop.
             | 
             | FFI continues to be a disaster (to be fair, this is not
             | unique to Dart/Flutter).
             | 
             | The biggest problem with any cross-platform system on
             | mobile is always getting performance out of the native
             | interop. It's often easier to ship a computation to a
             | server on the web and ship teh result back rather than
             | execute it natively on another thread on the bloody phone.
             | It's infuriating. We have a zillion cores, and every single
             | phone OS tries it's damnedest to prevent you from using
             | them because, heaven forbid, you might actually use up some
             | of the battery. The Horror! The Horror!
             | 
             | The cross-platform systems for phones are really good at
             | doing puzzle games or CRUD. Step outside of that and you
             | enter "Here Be Dragons" territory very quickly.
        
         | lockhouse wrote:
         | The biggest issue with Dart IMHO is not so much the language
         | itself, but the ecosystem.
         | 
         | For the record, Swift suffers from this problem as well. Kotlin
         | only avoids it because of Java interop, although even this
         | becomes complicated because of Google's half-assed
         | implementation of Java on Android.
         | 
         | I think this is one of the biggest reasons to reach for
         | JavaScript instead. It has a lot of flaws, but it has a huge
         | ecosystem that works nearly everywhere.
        
           | mhoad wrote:
           | Also worth keeping in mind some of the cross language
           | extension points in Dart.
           | 
           | Compiles to Wasm and can work with other compile to wasm
           | languages.
           | 
           | Has quite good support for C, C++, JS, Swift, Java and Rust
           | interop where they have tools that will write all of the glue
           | code for you.
           | 
           | Also has decent gRPC support meaning you can use any other
           | language that also fits that category.
           | 
           | It's a small Dart ecosystem but it's fundamentals are great
           | and it's extension points are much better than you will
           | likely find elsewhere.
        
         | sgt wrote:
         | It may lack things - true. But it's a pleasure to work in. I
         | code quite a bit of Dart these days and the language never
         | really holds you back. It flows quite easily. I use some code
         | generation by having a build runner in the background.
        
           | ptx wrote:
           | Isn't the need for code generation indicative of the language
           | holding you back?
        
             | fragmede wrote:
             | Isn't the need to drive a car indicative of living in the
             | suburbs "holding you back"?
             | 
             | Code generation (and modification) tools are there to help
             | you. You can choose to walk everywhere but once the car
             | becomes ubiquitous, why walk?
        
           | skybrian wrote:
           | I'm wondering how you deal with the pile of constructor calls
           | needed to construct views in Flutter? Deeply nested
           | expressions remind me of Lisp.
           | 
           | JSX is conceptually the same but somehow seems easier to
           | read. Maybe it's the close tags?
        
             | pzo wrote:
             | I'm wondering about this as well, actually this weekend
             | been doing Flutter 'Test Drive' of their tutorial and
             | experience was not that great. I'm still forcing my brain
             | to parse this complex structure with very simple widget
             | structure from their samples.
             | 
             | Its Flutter:
             | 
             | ``` class MyHomePage extends StatelessWidget { @override
             | Widget build(BuildContext context) { var appState =
             | context.watch<MyAppState>(); var pair = appState.current;
             | return Scaffold(           body: Center(             child:
             | Column(               mainAxisAlignment:
             | MainAxisAlignment.center,               children: [
             | BigCard(pair: pair),                 SizedBox(height: 10),
             | ElevatedButton(                   onPressed: () =>
             | appState.getNext(),                   child: Text('Next'),
             | ),               ],             ),           ),         );
             | }
             | 
             | } ```
             | 
             | versus SwiftUI:
             | 
             | ``` struct MyHomePage: View { @StateObject private var
             | appState = MyAppState()                   var body: some
             | View {             VStack {                 BigCard(pair:
             | appState.current)                     .padding(.bottom, 10)
             | Button("Next") {                     appState.getNext()
             | }                 .padding()
             | .background(Color.blue)
             | .foregroundColor(.white)                 .cornerRadius(8)
             | }             .frame(maxWidth: .infinity, maxHeight:
             | .infinity)             .padding()         }
             | 
             | } ```
             | 
             | versus React Native:
             | 
             | ``` const MyHomePage = () => { const [pair, setPair] =
             | useState(/* initial pair _/ );                 const
             | getNext = () => {         // Logic to get the next pair
             | // You'll need to implement this function       };
             | return (         <View style={{ flex: 1, justifyContent:
             | 'center', alignItems: 'center' }}>           {/* Replace
             | BigCard with appropriate React Native components */}
             | <BigCard pair={pair} />           <View style={{
             | marginVertical: 10 }}>             <Button title="Next"
             | onPress={getNext} />           </View>         </View>
             | );
             | 
             | }; ```_
        
               | sgt wrote:
               | With the help of the IDE (Android Studio is what I use
               | for Flutter development) it is actually pretty OK. It's
               | easy to use keyboard shortcuts to see / explore function
               | parameters and so on. I also indent regularly so I can
               | easily undo if something is clearly out of whack.
               | 
               | That said, SwiftUI is clearly the supreme leader in this
               | declarative approach.
        
           | IshKebab wrote:
           | I definitely like it more than Python () and probably more
           | than Typescript (the best non-niche scripting language
           | available today). But there are some quite glaring holes and
           | weirdnesses. In particular:
           | 
           | * The support for tagged unions (Rust style enums) is pretty
           | nonexistent.
           | 
           | * `int` is 64-bit but not on the web. I totally get why they
           | did that and hopefully they can fix it with wasm at some
           | point but it's very annoying for interop with languages that
           | have the full range of int types.
           | 
           | * As many many people have said, it's quite verbose to make
           | dataclass style types.
           | 
           | But it still deserves to be way more popular than it is. It's
           | basically what JavaScript would be if it was designed by
           | someone with taste.
        
         | mhoad wrote:
         | Dart is actually hands down one of the most productive
         | languages out there right now in terms of ergonomics. It's
         | still a tiny language ecosystem at the moment but there are
         | already a lot of happy paths that will get you to an incredibly
         | high level of quality with very little work.
        
       | keyle wrote:
       | The mistake is believing that you can ever stop learning. 20
       | years I'm doing this professionally, 20 years I'm learning.
        
         | 0x445442 wrote:
         | The mistake OP is referring to is spending too much time
         | learning the wrong thing which is easy to do in the Cargo Cult
         | that is modern Software Development.
        
           | Barrin92 wrote:
           | There isn't really anything to Flutter that stands out as so
           | unique it wouldn't translate. Dart is not opinionated, sort
           | of as if you threw every Algol family language into a
           | blender, and the component/reactive style is just like any
           | other modern framework.
           | 
           | it's arguably one of the strengths of Flutter, regardless of
           | where you come from there's nothing esoteric to it, so it's
           | not like you learn the wrong thing. Learning Programming
           | isn't about memorizing APIs or libraries, it's about
           | concepts.
           | 
           | If you've done Flutter for several years your experience
           | translates just fine to say React native, you just gotta
           | learn Javascript
        
             | the_only_law wrote:
             | > Learning Programming isn't about memorizing APIs or
             | libraries
             | 
             | Maybe not, but interviewing often is.
        
       | edem wrote:
       | I wonder why anyone thinks that learning a library that's written
       | in a dead language is a good idea.
        
         | thowrasdf23 wrote:
         | Right? The community has been quite honest on its wants/desires
         | for dart with little progress in 10+ years.
         | 
         | Thankfully Skia+React metaphors are being actively developed in
         | more mature and healthy language ecosystems.
        
         | cageface wrote:
         | Dart has been evolving rapidly. It remains to be seen if Google
         | will stay committed to it but you can hardly call it dead
         | today.
         | 
         | https://medium.com/dartlang/announcing-dart-3-53f065a10635
        
       | nprateem wrote:
       | Well that's why you should always keep tabs on what's in demand
       | and switch stacks if necessary.
        
       | nicechianti wrote:
       | [dead]
        
       | bibabaloo wrote:
       | Are mobile stacks so specialised that it's difficult to switch
       | between them?
       | 
       | Out of curiosity, how long would it take a flutter dev to become
       | productive in some other stack?
        
         | ransom1538 wrote:
         | Android to iOS is like React to Cobol. If you were a plumber
         | using android you might know more about Android than a iOS
         | developer.
        
           | saagarjha wrote:
           | That's not really true, especially these days.
        
         | wruza wrote:
         | Maybe I'm special (and it was 6-10 years ago), but after
         | becoming proficient and pretty deep in osx/ios development I
         | took an android project and it wasn't obvious AT ALL. If it
         | were a new job and not a project pushed to me at the same
         | position I had, pretty sure it would be difficult to keep it.
         | 
         | Of course that depends on average expectations. Some people may
         | learn and do and relax and still outperform if these are low.
        
           | lockhouse wrote:
           | Pre-Kotlin and Jetpack Android were very tedious. Even simple
           | things like handing button click events and changing the text
           | of a label at runtime were not obvious or simple, and you had
           | to worry about backwards compatibility libraries to a larger
           | extent than any other platform.
           | 
           | From what I understand modern Android has become much more
           | pleasant to develop for.
        
         | nikanj wrote:
         | They are not, but HR / hiring managers are keyword based and
         | won't entertain the idea of hiring someone with the wrong
         | experience. See also: https://versastudio.com/blog/if-
         | carpenters-were-hired-like-p...
        
           | FirmwareBurner wrote:
           | It's the same in every other stack/programing
           | language/technology when you go through the default channels
           | of HR/recruiters.
           | 
           | It's not that competent engineers can't become quickly
           | productive in a new/stack language, it's that business don't
           | understand that and/or don't want to risk it with switchers,
           | and so prioritize hiring only those already experienced in
           | that stack, creating employment bottlenecks where there's
           | simultaneously a shortage and enough people willing to
           | switch.
           | 
           | Same when talking to recruiters: "oh you only have experience
           | in X (which is similar to Y), sorry but the hiring manager
           | said (s)he wants someone with at least 3 years experience in
           | Y".
           | 
           | Your only escape is having a solid network so you can push
           | your resume directly to hiring managers who understand
           | technology and your adaptability, and this way bypass the
           | hiring shit-show.
        
           | tkiolp4 wrote:
           | C'mon. HR doesn't have a clue of what they're asking for.
           | Anyone with a little of experience in the IT industry knows
           | that:
           | 
           | 1. You'll need to put whatever is needed in your CV to pass
           | through HR
           | 
           | 2. You can explain yourself to the actual tech people who
           | interview you in the next stage. For example, if you know
           | Ruby and RoR, but there's an excellent opportunity to work in
           | a cool product for a company that does Python and Django,
           | well, apply! Obviously you'll spend a couple of days with
           | Python and Django and notice the similarities and differences
           | with Ruby and RoR. You will add to your CV the keywords
           | Python and Django and you'll get pass HR (if HR asks you
           | about your experience with such tech stack you can always say
           | that, indeed, I have plenty of experience with MVC web
           | frameworks and blah blah blah). When you pass to the next
           | stage of the interview and get to talk to real engineers,
           | then you can explain that you have many years of experience
           | working with RoR and that learning Django will be a pleasure.
        
             | pragmatic wrote:
             | This looks shady as hell though.
             | 
             | What else is the candidate lying about?
        
         | lawgimenez wrote:
         | It's not difficult to switch between mobile stacks. It's just
         | companies make you believe that it is, to promote a "one
         | codebase efficiency" mantra. For me, to be efficient with
         | cross-platform solutions, you need a deeper knowledge with the
         | underlying native frameworks.
         | 
         | I started with Blackberry SDK plugin with Eclipse, then to
         | Android, Windows Mobile (UWP) and iOS in that order. Majority
         | of those projects I have worked are written in native. It's not
         | that hard to switch since you can find familiar concepts in
         | each frameworks and stacks.
         | 
         | Of course, I have been also part with cross-platforms solutions
         | but it just cannot cope up with the yearly updates and
         | deprecation especially if your apps are critical.
        
       | kebsup wrote:
       | I have worked as an Android developer for about two years, then
       | had to do project in Flutter. Learnt it over a weekend and
       | getting the UI right took me less time then if I were to do it in
       | native Android (before compose).
        
       | PedroBatista wrote:
       | Obviously I feel the pain of the OP but I think he blames the
       | wrong thing.
       | 
       | Flutter is a ( viable ) technology that's being growing for the
       | last few years. A very significant percentage of new mobile apps
       | are programmed with it these days.
       | 
       | It seems his problems have everything to do with the local job
       | market and not the technology. With the added bonus that you can
       | be a single man operation and release your own apps for both iOS,
       | Android and the desktops.
       | 
       | I'm not a fanboy and even less of Google but Flutter really
       | offers the ability to make lemonade if the job market gives you
       | lemons.
        
         | scarface_74 wrote:
         | As long as you don't include in that number - most apps built
         | by Google.
        
           | izacus wrote:
           | Google can hire separate developers for each platform and pay
           | them, investing millions of dollars into their mobile app.
           | 
           | Can you afford to spend money developing same thing twice
           | forever?
        
             | scarface_74 wrote:
             | I worked for a midsized health care company a few years ago
             | (around 300 people including customer service). They had
             | three mobile developers who supported the iOS app and the
             | Android app.
        
               | MrDresden wrote:
               | Similarly I worked at a 1000 person financial institution
               | for years and represented 50% of the Android mobile
               | developer division there.
               | 
               | Similarly there were 3 iOS devs.
               | 
               | The feature set was enormous but we did fine.
        
           | lockhouse wrote:
           | Is that actually true though? Most major Google apps predate
           | Flutter. I was under the impression that a lot of their apps
           | are either custom web view wrappers or native with shared C++
           | code for business logic.
           | 
           | Stadia and Google Pay are the only consumer facing Google
           | apps I'm aware of that are made with Flutter.
        
             | mhoad wrote:
             | Ads is all flutter on mobile and Dart on the web.
             | 
             | Fuchsia is an OS that is also using Flutter for their
             | entire UI layer.
             | 
             | I think there's more a case of there isn't an argument for
             | doing but rewrites just because Flutter is now a thing but
             | in a greenfield scenario it would be a serious contender
        
               | scarface_74 wrote:
               | So you can invest your time I learning Fuschsia and
               | Flutter. What could possibly go wrong?
               | 
               | But that's not demonstrating the promise of a great cross
               | platform experience.
        
               | mhoad wrote:
               | You made an argument saying that even Google won't use it
               | for cross platform.
               | 
               | I have some context as to why it's both a wrong and
               | misleading statement.
               | 
               | When it came to the biggest money maker of the entire
               | business this is what they picked. When it came to a new
               | greenfield project for an entire OS... this is what they
               | picked for the UI.
               | 
               | The statements you made about "the lessons they learned"
               | is just some stuff you made up and isn't actually
               | supported by facts.
        
               | scarface_74 wrote:
               | Ads is their biggest money maker. But it doesn't have to
               | be usable compared to their consumer facing software.
               | Even though it's used by ad buyers, it's more akin to
               | internal tools that at most large companies don't get
               | near the care of consumer facing tools (looking at you
               | Amazon where the internal review process website broke
               | last April).
        
               | nicpottier wrote:
               | I used to feel the same way but Flutter is hardly a new
               | technology anymore yet still seems to be used very
               | little. I've dabbled with it on hobby projects here and
               | there and it seems "fine" but not sure I'd bet the farm
               | on it.
        
               | mdhb wrote:
               | It's been a thing outside the context of iOS and android
               | for maybe less than 2 years? It's hardly in the "it had
               | its chance but failed" category.
        
             | UltimateEdge wrote:
             | Family Link [1] also looks like it's made with Flutter (I
             | checked the DevTools in the browser).
             | 
             | [1]: https://familylink.google.com
        
             | scarface_74 wrote:
             | Most of their apps are native. They learned the same thing
             | that Facebook learned years ago. Cross platform GUI apps
             | have always sucked - or at least since Java tried to
             | popularize them in the late 90s.
        
         | candiddevmike wrote:
         | Flutter is pretty old if you think about it and still has too
         | many rough edges and not a lot of big name adoption. The
         | project is too ambitious, and the features seem more like PoCs
         | than something you can rely on in production, IMO.
        
           | bmitc wrote:
           | This is what has prevented me from diving into Flutter for a
           | personal project. Although it supports desktop and web, it is
           | first and foremost a tool for building mobile applications.
           | For desktop, too much of the API is built around the
           | assumption that you are on a mobile device with a single
           | window and a finger as the pointing device. Feature requests
           | for desktop, such as proper support for mouse-based drag and
           | drop and multiple windows, are either ignored or take forever
           | to develop.
           | 
           | Any platform that tries to support web, mobile, and desktop
           | all at once, of which there are many, are destined to this
           | fate of being spread too broadly and thinly.
        
             | pohuing wrote:
             | What do you mean by mouse based drag and drop? As far as I
             | can tell Draggable and DragTarget work fine on windows and
             | macos at least.
        
               | bmitc wrote:
               | The API assumes you are on a relatively small screen and
               | using a finger to drag and drop. Thus, it doesn't provide
               | functionality that you would expect if you were on a
               | desktop or laptop monitor with more space and using a
               | mouse and keyboard where there is a wider variety of
               | things that you would like to happen with a drag and drop
               | interface. The API is primarily assuming you're taking a
               | widget and dragging it with a finger to somewhere just an
               | inch or two away on a phone or tablet screen. Yes, drag
               | and drop "works" on desktop as it is, but the API is not
               | well-designed for desktop-based usage. A lot of ad-hoc
               | type of behavior using global state has to be used.
        
       | cageface wrote:
       | I recently started building my first Flutter app and overall I've
       | found it to be surprisingly pleasant. I've had no trouble finding
       | good packages for features I need and even though I'm learning
       | the language and APIs as I go I've made rapid progress.
       | 
       | I've done many apps in Electron, React Native & native iOS and at
       | least on a technological level I prefer the devx of Flutter.
        
       | ThinkBeat wrote:
       | Id say that its the wrong way to think about it. As long as you
       | are working in the software engineering field change is a near
       | certainty.
       | 
       | You will not hit on a technology / framework / product that will
       | keep you going for 40 years. [1]
       | 
       | Working with Flutter you have learned a lot that is valuable
       | going forward. Learning to adopt new tools is part of the job.
        
         | nailer wrote:
         | Time is a limited resource. Choosing to invest in the right
         | technologies at the right time is the important part of a
         | career in tech.
        
         | itpragmatik wrote:
         | I started doing Java (and sql/Oracle) development in late 1990s
         | and even today I am deploying REST APIs written in Java, MySQL
         | to AWS. So, yeah, it has been about 23+ years so far!
        
         | mgkimsal wrote:
         | C, Java, PHP, SQL, Python, Ruby have kept a lot of people going
         | for more than 20 years, and will likely continue to be relevant
         | in some capacity for at least another decade (if only
         | maintenance, not even including new projects started with those
         | tech stacks). I've been working with PHP and some variation of
         | SQL for the past 28 years, and it will go on for a while
         | longer. I've also worked in the Java world, and have done a
         | smattering of other tech along the way as well.
         | 
         | Not everything lasts 40 years, but many things last more than
         | 3-5.
        
           | ThinkBeat wrote:
           | true.
           | 
           | But Java 2023 is quite different from Java1. The tools you
           | use now are different (unless vi) You have had to learn a lot
           | of new technologies, frameworks, syntax to keep up.
           | 
           | PHP has also gone through so many changes that it is near a
           | different beast these days than when it first appeared.
           | 
           | So if you had relied on your skills you learn as PHP 1.0 and
           | Java 1.0 today you would not be very productive.
        
             | mgkimsal wrote:
             | Much/most of Java 1 will still compile, at least (FWIR).
             | The evolutionary progress of java 1... to whatever it is
             | now (current one I'm using is 17, but I know there's more
             | past that) has largely been adding of new
             | libraries/methods, etc, and the majority of your java
             | skills from 10-15 years ago are still valid (although might
             | not be the most efficient any more).
             | 
             | I've watched people go through
             | Flash/Silverlight/Actionscript, multiple MS tech stacks,
             | and many many other promising tech. Many have had to large
             | scale reinventions of themselves and cram 'new to them'
             | tech as the old stuff has gone away.
             | 
             | It's definitely easier to evolve with a tech stack over the
             | years. You get a better sense of idioms, best practices,
             | etc. that is hard to replicate overnight.
             | 
             | And yeah, some tooling is different over the years too, but
             | yeah, vi still works :)
             | 
             | Shiny new 'hey look at this' ideas can pop up in newish
             | langs, but diving deep in to them isn't often the best path
             | for most people. The truly good and impactful ideas tend to
             | get recognized and adopted in the more mainstream
             | ecosystems over time, giving you most of the benefits
             | without needing to throw out much of your experience.
        
       | faitswulff wrote:
       | The job market is pretty rough regardless of tech stack right
       | now.
        
       | dcchambers wrote:
       | Why are people so obsessed with hyper specializing in software
       | development? Labeling yourself a react dev or rails dev or
       | flutter dev or whatever is only going to limit your growth and
       | options. Your career will outlive many tech stacks. Tech changes
       | quickly. Never stop learning.
        
         | pragmatic wrote:
         | Because recruiters.
         | 
         | The person with one year of experience selling cellphones who
         | now does the phone screen needs to see the exact tech listed on
         | a resume or they pass.
        
           | the_only_law wrote:
           | Or they just edit your resume without your consent and
           | confuse everyone in the interview. I've had that happen a few
           | times.
        
         | lucasyvas wrote:
         | Some companies hire this way which always seemed stupid to me,
         | but I agree with you.
        
         | [deleted]
        
         | the_only_law wrote:
         | Because once the market goes belly up, being a generalist seems
         | to be a death sentence.
         | 
         | One thing I noticed having been on the job search for about a
         | year now, is the amount of jobs looking for a specialist,
         | whether that be in a particular domain, or technology. Often
         | very obscure or "obsolete" stuff.
         | 
         | I remember applying to a government job, and in their little
         | checklist application, one of the questions was basically "do
         | you have experience writing software for [hyper specific
         | domain]". Of course, it was the only question on there I
         | couldn't answer "yes" to. Low and behold I was rejected for
         | that reason. Not sure how they're going to fare finding someone
         | so unique at the price they're paying.
         | 
         | I'm frankly ready to leave the industry, but unfortunately,
         | there's not really any other good options for me at this point.
        
           | coffeebeqn wrote:
           | We must be looking at different levels or roles or something.
           | Most job postings I see say something like Must have
           | experience in "x, y, z or other modern language". Maybe
           | extreme specialization is more common in front end ?
        
             | the_only_law wrote:
             | I've seen roles like that as well, but much less than I
             | used to. I see them more on entry level roles. I've never
             | worked frontend and I've barely been full stack for several
             | years now. Most of my experience is in .NET stuff, and
             | usually C# is not the " "x, y, or z". Usually it's
             | something along the lines of "Java, Go, Python". Not that I
             | haven't ever worked in those languages, but certainly not
             | recently.
        
           | somsak2 wrote:
           | The trick with these kinds of questions is to take a page
           | from a politician's book and not answer it directly if you
           | feel like you'd have to say "no".
           | 
           | "I built X system in [somewhat adjacent domain]", "[hyper
           | specific domain] is a subset of my work in [more general
           | domain]" etc.
        
             | the_only_law wrote:
             | Unfortunately, it was just a series of yes/no radio
             | buttons. Not much room for nuance or spinning.
        
       ___________________________________________________________________
       (page generated 2023-08-12 23:02 UTC)