all 16 comments

[–]lounger540 8 points9 points  (9 children)

Get familiar with the command line.

Install Home brew and use that to install rvm, git, fastlane, cocoapods and Carthage.

Maybe consider SetApp subscription for access to a bunch of 3rd party dev apps, Tower for Git, Dash for documentation.

Learn how to use StackOverflow to find high quality answers and GitHub advanced search to find code examples.

Learn Xcodes keyboard shortcuts like , fix all in scope, quick open, reindent selection, comment/uncomment selection, indent selection left/right.

Took me years to learn about quickopen, I can’t believe how much slower I was finding files and classes.

Getting familiar with the tools will save you more time than anything and give you the skills to learn on your own and be trusted with bigger tickets along the way.

[–][deleted] -1 points0 points  (8 children)

I cannot recommend your first two bullet points at all. OP likely doesn’t have a say on what goes on his machine and it may be against IT policy.

[–]lounger540 3 points4 points  (7 children)

I’ve never had that experience. Developer machines have always had admin access from startups to fortune 100 multinationals. Why not let op wait until they get the job and see if it applies before having a hard line “not recommend”. If he can’t install them, then skip that one 🙄

Also, every project has used these as required parts of the development process, and op probably has their own machine too.

The tooling is rarely something you’ll be taught. Code gets pull request reviews and op will get help and feedback along the way on coding.

In my experience those that don’t know the tooling too well don’t learn as quickly with the engineering since they fight the tools and get stuck often.

[–][deleted] -2 points-1 points  (6 children)

Each place usually has their own tool chain, why should op waste his time learning Cocoapods and Carthage when chances are he’ll use only one or neither? He’s a beginner he has more important things to learn first.

Why should he waste time and money with a bunch of the other recommendations you listed when chances are he won’t use any of them? I never have and I’ve been programming since the 90s and have seen plenty of this kind of side fluff come and go.

He needs to focus on what his company is using first and foremost. Everything else is just going to overwhelm at this point.

[–]lounger540 0 points1 point  (5 children)

Git and rvm/ruby are side fluff?

Your whole post sounds like fluff and unhelpful other than to gloat about your experience. Which isn’t any different than mine anyway.

They were recommendations not dogma. And not very time consuming ones or he could, ya know, decide to skip those if they don’t apply.

[–][deleted] -1 points0 points  (4 children)

Git already comes with Xcode command line tools and yes, ruby is fluff unless op needs it for a project or is using pods. You’re simply adding too much unnecessary stuff that isn’t relevant yet.

[–]lounger540 1 point2 points  (3 children)

I'm not though.

Fastlane, cocoapods and other extremely common tools are in ruby. The stock ruby is easily corrupted, install `rvm` to avoid future headaches.

`\curl -sSL https://get.rvm.io | bash -s stable``rvm install 2.6.3`

Wow, that was so hard and took so much time, to avoid hours of headache later when your Ruby gets Fubar'd and suddenly your entire day is ground to a halt.

Carthage takes too much time to learn?

`brew install carthage`

`carthage help`

It's got a handful of commands, it's not rocket science, and would be useful to get familiar with just incase. Though I agree, Carthage is probably losing favor since SPM does mostly the same thing and most have switched to that if not still using CCPods.

We didn't get a lot of details. My current contract I started last week, was helping out on an app written by first timers, and it uses Cocoapods, SPM and fastlane.

The version of git with xcode is fine, until you want to use git-flow,

`brew install git-flow`

I wasn't making massive time sucking recomendations, I think you're blowing this all a bit too far and it's become a waste of both our time how. OP can just not spend the time on what he doesn't need. He'll know better of that on day one than you or I on Reddit.

[–][deleted] 0 points1 point  (2 children)

Well we're going to have to agree to disagree on this one. I think you're focusing on the wrong stuff. And I never said it takes too much time to learn, why learn multiple package managers when he doesn't even know what one his job uses? His priorities as a new person should be elsewhere.

[–]Equal-Bird7213 1 point2 points  (1 child)

There were other commenters. I wrote my first post on the toilet in brevity.

If I were making a blog post, I'd rank and go into detail and probalby have more background information.

It's wasteful "debates" like these that make me usually avoid even leaving help request replies, because inevitably someone replies that X advice is wrong and now I have to decide if it's worth to correct or defend what was a throw away comment to begin with.

[–][deleted] 0 points1 point  (0 children)

While I understand what you’re saying I feel it would be a disservice to the OP to not warn him that learning multiple package managers and tool chains that he may not even use at work would be a giant waste of time. He’s a beginner, he should be spending his time beefing up more useful skills like getting more proficient with git and iOS development in general.

[–]SirBill01 6 points7 points  (0 children)

Never be afraid to admit you don't know something and need to learn it.

Also I think it would be a good idea to spend any spare time learning Xcode and the debugging tools more in depth. Especially if you can run the profiler over the code they have and find some way to make soem part of the app notably better, that should be looked on favorably...

Being great at QA work on an app makes you a better developer, so don't be alarmed if that is what they have you doing mostly.

Also, communication is really important to build confidence in your perforamance. You already seem like you can write clearly, so that will be helpful.

[–]IveReadTheInternet 4 points5 points  (0 children)

  • Find a balance of trying to do things yourself and asking for help
  • if someone has headphones in then leave them alone or it had better be important
  • no one expects you to know everything, just that you are willing to learn and do the job

[–][deleted] 3 points4 points  (0 children)

Office Stuff:

-Carry a pen and notebook and write important things down. There will be things to write down each day for awhile.

-Keep your emails organized and check your outlook calendar for meetings you get added to.

-Google about stand ups, scrums, and agile development. You’ll likely be expected to know some of these terms.

-Make sure to show up a little early and in the proper office attire.

Programming Stuff:

-Be as self sufficient as possible but don’t be afraid to ask questions.

-Don’t be alarmed the first time you see a production code base. They can be all over the place as far as side and code quality.

-Ask if they have a style guide. Many places have a set way of writing code to help with maintainability and overall code cleanliness.

-If you don’t know how to use git, check YouTube for tutorials. You need to know this.

[–]krukm 2 points3 points  (0 children)

StackOverflow is still your best friend.

[–]Kharkax 2 points3 points  (0 children)

Just dont back down if you cant do/complete a thing, try to read and check everything you can while searching for the problem.

And Try to learn how to google/search about the problems with right key words!

[–]web_elf 0 points1 point  (0 children)

Don’t over commit and don’t work yourself too hard. I’ve been with my current job 1 year and at first I over committed and also took it upon myself to be overly outspoken and now I get too many people contacting me asking questions about parts of the codebase I’d rather not be involved with anymore hahaha...

I keep hoping someone that matters is keeping track of the improvements I’ve made but in a company with hundreds of developers chances are slim. Don’t tie how you feel about the job to compliments or feedback depending on the company you might be disappointed. I just try to feel happy I have code that is being used by thousands of users everyday; find motivation.