Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

newdev9

macrumors newbie
Original poster
Feb 15, 2023
16
7
I’m currently at a crossroads where I want to get out of retail and pursue something new. I’ve had an interest in technology and I’m looking at learning swift. I have a MacBook that can probably handle beginner learning.

But I’ve also read about the downturn in the tech industry, layoffs of programmers and in some cases companies leaning towards hiring senior devs and not junior ones.

My questions are: is it still wise to get into coding particularly with Swift and when do you all think the tech industry will make a comeback and have some opportunities for junior developers?

Would I be wise to go pursue something else?
 
  • Like
Reactions: gojodev

Red Menace

macrumors 6502a
May 29, 2011
583
230
Colorado, USA
Do you have any kind of programming knowledge or experience? What kind of timeframe are you looking at? Starting from scratch can take years, as you need to learn about techniques and APIs in addition to whatever language. I also would not consider Swift a beginner language.
 

Flowstates

macrumors 6502
Aug 5, 2023
333
396
There was a time and place where you could bootstrap something out of a 2 months bootcamp and be on par with CS graduates (in the eyes of a certain set of employers).

That ship has sailed, the talent pool is wider and skill-set deeper.

But given an interest for the field, it is not impossible to work towards more foundational skills in CS and try and scope an entry level data analysis / business analysis and laterally move from there in the tech totem pole.

That being said, in the age of LLM based code refactoring, there is less and less emphasis on learning individual frameworks and moreso the understanding of the underlying logic and dynamics expressed (hence the emphasis on CS).

Understand also that the industry seems to be fetishized by the outward looking image of SV. Reality is far from instant riches and two day work weeks (survivorship bias). From my personal experience with code monkeys and haxxors alike, it helps to be on the spectrum to find inherent interest in the tasks at hand. If you are a more social individual looking for a way to improve your material condition, I'd advise punching for tech-sales.

That is, if after all I wrote you still want to pursue the idea of Software Developpement. Coursera is your friend, certifications are your friends, a git-hub with interesting side-projects is your friend.

And if you want to get started and get a feel for Full-Stack developpement. I completely agree about the above statements about Swift being both a "simple" and "in demand" language. Those ideas are remnants from the app era where there was a mathematically desirable chance to make it big selling your 1.99$ rewrite of lifesaving utilities overlooked by apple in their initial OS designs. Nowadays it's all marketplaces data-faucets and Gacha-wrappers.

Your best bet is to learn some foundationnal web tech, hence: Javascript -> Python -> Java | Ruby

If you want to make yourself desireable to employers, find ways to:

1.cut cost
2.aquire new revenue
3.find a way to make people more efficient at 1. 2.

The order of emphasis between 1. or 2. will depend on the state of the economy.

Look if you may have some possible advancement possible at your current place of employ, to get that first foot in.

The best of luck in your endeavors !
 
Last edited:
  • Like
Reactions: 0423MAC

casperes1996

macrumors 604
Jan 26, 2014
7,593
5,764
Horsens, Denmark
Hello!

So, I don't really have conclusions here, but I'll throw thoughts around. For some background to where I'm coming from with my thoughts, I work primarily as an iOS developer, although I also touch Android, serverside and web code from time to time at the company. I have a master's degree in computer science, specialising in cryptography and programming languages.

First off, my immediate thought is that if your primary motivation is just to not do what you're currently doing, and think software development is just a way out that you can teach yourself, then you'd probably always be at the bottom of my list of potential hires, almost no matter how much you learn. On the other hand, if you come to this with a genuine passion and interest for computing, software and code, then you could jump a few tiers above others who may know more out of the gates. Getting out of retail is a fine subgoal, but you also need to not just be driven away from retail, but towards software engineers. Otherwise, there's probably better other paths.

Unlike the other comments here, I frankly think Swift is a perfectly fine starting language. Something Swift does really well is progressive disclosure of information. That is, you do not need to understand the whole language to start doing cool things. You can know a little, use it, learn a little more, use it, and so forth. Some languages, like Java, that is often used as a starting language at universities, has a lot more you need to know to even have a program start at all. With Swift, simply writing

print("Hello World")

and nothing else in a main.swift file, is a full program you can run. All you need to know to fully understand the contents of the program is what a function call is and what a string is. Of course there's always more to learn surrounding how it goes from that text to something that executes, but the contents of the Swift file are that easy to get going with. In Java, at least in older versions of Java, you needed something like

class MainRunner {
public static void main(String args[]) {
System.out.println("Hello World");
}
}

There is so much more going on that you have to question or at first just accept not understanding. What's a class, what's static, what's public, void, [], etc.

In Swift you can learn these things little by little.

Many other programming languages, like Swift, have progressive disclosure of complexity. Python and JavaScript are also options that have similar initial complexity, although I personally despise Python for anything that grows more complex than ~150 lines.

I don't believe in learning a specific target though. I don't think there's much point in learning iOS app development with Swift as an example. Or Web Dev with React and JS, or any other specific combination of technologies. Instead learn fundamentals. Learning fundamentals *through* app development with Swift is perfectly fine. Just not focusing on learning just that specifically. Always keep asking how and why. There are for example many differences between iOS and Android development. But for either platform, if you ask "How do they do that?" and "Why do they do that?" enough, you eventually get to a common foundation. Sometimes different design decisions were made to serve the same fundamental goal with different implementations and caveats, but understanding the foundations in one places makes you quickly able to understand the higher level abstractions and reasons for why they might behave the way they do on a different target.
I always say I know all programming languages. Not because I know them already, but because I know how the machine works, I know how compilers parse and transform higher level code to machine code, and I know all the common patterns. There are some really esoteric stuff out there, but if you give me a grammar description, I can write it. I know my boss agrees that this is the more valuable skill than being a hyper specialist in a specific framework.

I think programming is great to know in some capacity almost regardless of what job you have. Even if you do't get a gig as a programmer, any skills you have in automating tasks can aid you in other positions that can laterally move you into more software oriented positions in companies.

It's hard to speculate in fluctuations in markets. I can't speak to supply and demand in the software engineering hiring markets, especially not in the US. Here in Denmark it seems fine and aside from game development studios, I don't know of any issues getting jobs among software developers (although game positions are doing badly).
Speaking more generally however, every couple of years, since like the 50s, the amount of programmers in the world has doubled. I think it was every 7 years it doubled, but I'm going from memory based on a talk I saw like 3 years ago. That's not just the supply of programmers growing rapidly, but the demand too. If there's a downturn in the industry I think it's a blip. Some seniors flood the market making them more attractive hires if they're not too much more expensive than juniors assuming they struggle finding high paying gigs, but eventually it evens out and the demand grows rapidly again.
I definitely think there's room for self-taught individuals. But for software engineering positions I also think it's important not just to be a 'coder', but instead being an engineer and a 'programmer'. May seem like synonyms but there's a distinction to me. Anyone writing code is a coder. But a programmer and an engineer will have a firm grasp on architecture, both at the macro and micro level and can weigh the consequences of different technical design decisions as well as talk about commonly understood pattens in the lingo. This will include knowing the delegate pattern, MVC and MVVC, dependency injection, singletons, decorators, etc. There are books that will teach all of this, and at an interview, speaking the lingo can matter. Software engineering is a culture, and if you're in a technical interview, understanding the culture will help the interviewer in knowing your applicability faster.

A lot of what I talk about is only relevant a long time after you get over the beginning stages, but I want to make it clear that being a programmer is about a lot more than writing code. The early starting out experiences, aren't that comparable to what it's like writing code later in the process. This can make it hard to evaluate if it's something you're going to enjoy when you're starting out. In the early process of learning, you'll mainly be learning syntax and magical words that mean special things. While later your focus will shift to bigger picture architecture. The common passion that exists, that you can evaluate from day one, is the process of discovery and learning. This will be a constant throughout a programmer's career. Whether it's the high level of learning a new paradigm or framework or language or whatever, or the micro level of discovering the true source of a logic bug, as you step through the code with a debugger - on the surface everything looks fine, but then you discover that sneaky edge case. You must love being a detective

If you want to do this, I also strongly advise getting a mentor or at least just someone who knows programming to talk to. Talking about it all is a great way to accelerate and cement learning.
 

0423MAC

macrumors 6502
Jun 30, 2020
479
622
I’m currently at a crossroads where I want to get out of retail and pursue something new. I’ve had an interest in technology and I’m looking at learning swift. I have a MacBook that can probably handle beginner learning.

But I’ve also read about the downturn in the tech industry, layoffs of programmers and in some cases companies leaning towards hiring senior devs and not junior ones.

My questions are: is it still wise to get into coding particularly with Swift and when do you all think the tech industry will make a comeback and have some opportunities for junior developers?

Would I be wise to go pursue something else?
Pursue what you believe you will be passionate in. As scary as some of these AI tools are advancing in assisting people they are still tools that will fail to replicate what's in the mind of a dedicated individual.

As far as swift is concerned I recommend swift playgrounds. The learn to code tutorials can be completed on an iPad or a Mac. Don't make the mistake that a lot of people make when first starting and dismissing them as being ONLY accessible to children. Even advanced programmers can learn some shortcuts they might have missed digging their head in Xcode from the jump.

If you like what you see there then go with an iOS bootcamp on Udemy or YouTube, this one in particular has been pretty good for years now:

There are a ton of avenues you can go down. Python is highly recommended starting out, but perhaps your passion is creating small apps on iOS that you can easily deploy and start earning some revenue (not easy). Even blockchain development can be interesting and despite the negativity around the space IS a growing ecosystem.
 

The Clark

macrumors 6502a
Dec 11, 2013
905
2,641
Canada
Native iOS dev, no. I love Swift, and I love XCode as well as how seamless Apple's signing and app submission process is, but the market has shifted to a write once, run on multiple devices mentality. You see this with the immense growth of React Native/Flutter. Honestly, most openings aren't for native iOS from where I live, and I hear that's the trend all over so I wouldn't bother. It will also be 2 years minimum before you're actually skilled enough to be considered by most employees, and even then, you need to be prepared for tons of rejections, 1337Code interviews, and pouring tons of effort into your portfolio, as that will be all you have to stand on if you do not possess any prior experience or a formal education.

Constant threat of AI is always there, but for the foreseeable future we developers should be safe. At this point it's really just a tool.

I'm not trying to dissuade you, I think it's worth learning how to code, just set your expectations accordingly.
 

gojodev

macrumors newbie
Aug 20, 2024
1
0
If you don't have experience then you can confidently start with Swift. Swift provides excellent documentation and fully covers all functions. There are a billion Apple devices in the world and if you create a great app then you can recoup your development costs. I know many programming languages and started working with Swift in 2022 for a Mac app using SceneKit. I wanted to see how far Swift had come since its introduction in 2014. What I found amazed me—everything is convenient and elegant, as you'd expect from Apple. Swift has all the language features and frameworks needed for modern development. The language has made great progress in recent years and everything works excellently.
 

grandM

macrumors 68000
Oct 14, 2013
1,520
302
It breaks my heart to write it but I wouldn’t learn Swift if you decide to learn to code. Swift is a marvel, Xcode a charm (despite what some claim) but the market is what it is. Coding in Swift produces native code which tends to run faster and show better graphics.

Most companies couldn’t care less. Devices have become faster and the possible battery drain doesn’t bother the companies. Except for some apps companies preferred to write code once and use it on several platforms.

In my country it is all about React (native) and angular. Flutter vacancies like no existent. The USA probably are the place where native devs can still flourish but not over here. I also notice many people in this thread downsize the importance of AI. From scratch is is amazing what it can produce in a blink of an eye. This is just the beginning. I heard from seniors they are having trouble finding new projects and day rates are under pressure. Truth is there will be less demand when the economy improves because AI will vastly improve the work done by a developer.

There is a lot of legacy code out there. That will play a role in demand. Some languages are compatible with older code. Swift with Objective-C. Kotlin (pretty much same syntax as Swift) with Java but companies need someone understanding the legacy code. I read that Kotlin aims to be multiplatform but Google never seems to really make a decision as this was supposed to be Dart and Flutter’s future. Kotlin claims to deliver native code though.

Anyhow the future seems to belong to developers who can combine code bases. About native iOS development. Learning Swift is one thing but when you’re talking about creating an app you will find yourself between the old way and the new SwiftUI to render the views (layout). The latter really is full of difficult things when you think about it. Which corresponds with the correct information on Java. But the poster was referring to the language in this case which of course SwiftUI is not.

We all want to learn to code while people fall on their knees to find a plumber who can charge whatever he or she wants… For now. Optimus is on its/his way. Musk could actually take over the world with those robots in every house.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.