Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

BirdOfPlay posted:

But that's probably enough on the IC derail, here's a newbie question: as a non-degree, first-time job seeker should I be looking at big corps to work on "line of business" software (internal stuff to make internal stuff run smoother) or a much smaller, software-only company? Or, third option, am I viewing things from the wrong angle entirely?

I've done both. Massive generalisation here, but if you can work somewhere where developers/IT are the main money spinner rather than a cost centre, do it. A smaller company will also likely give you more exposure to more things and hopefully less bureaucracy. On the other hand, wages may be better at a bigger company (I worked in the public sector in the UK so not really) and you may get a better pension or other perks. When I moved to a smaller company I found I had to up my game a lot and became a better developer as a result - it is lot easier to coast in bigger companies. On the other hand, having a big name on your CV doesn't hurt.

Apply to both lots, see what offers you get from both and which sort of culture you prefer.

Adbot
ADBOT LOVES YOU

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

return0 posted:

But VCS has nothing to do with CS? Also, surely these days students enrolling in a CS degree would already be using source control...

Well they'd have to know about it first, and certainly in Britain you can do Computer Science at uni without ever having done any programming in an academic environment prior to that, so that leaves what you pick up on your own, which is going to be all over the shop.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

Don Mega posted:

Yeah he also gave information on how to set up cygwin on Windows, but it just stood out to me as an ignorant/irrelevant thing to point out.

Access to a decent* set of command line tools that cygwin provides can be pretty handy as a developer. There is always powershell, but eh, cygwin bash will let you do most of what you want and you don't have to remember a completely different syntax when working on a linux box.

*Ok, well better than what you'd get at a normal Windows Command Prompt.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde
This isn't aimed at you, but I sometimes wish I could shake every grad I interview who says they want to do machine learning as part of their job. It's the new hotness and it really annoys me. Bonus points for those who say they enjoy designing algorithms. I get why they say it, but after the nth bloody grad says it, it just becomes tiresome. One of these days I'll write a blogpost about what life really is like for most developers in finance.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

Safe and Secure! posted:

What is that like, anyway? I always imagined that developers in finance get paid more than developers anywhere but they also have to work more hours than anyone else (except maybe those poor game developers :(), so it evens out.

Re: hours - Depends on the company and the culture and even the role - I used to work for a Central Bank which employed 1700 people (it's doubled in size since the other regulator got folded into it), and on some teams people did 9-5. This was typically on the middleware, HR systems and the like - systems not undergoing major rework, ticking along. I worked on the team that supported the economic forecasting division, which was much more of a time sensitive, front-office type role, where you'd often be doing adhoc one off work because a member of the MPC had asked a question and needed an answer within a day, which could result in longer days.

I currently work for a much smaller company that builds a systematic trading platform, the days are longer, and I have worked 8 till midnight in the past, when something *had* to be done for start of trading next day. Regulators love doing stuff like banning short selling with 24 hours notice, or some other external event occurs which you have to react to. I typically do 12 - 14 hours a day, but I don't really notice it as I'm having fun and stuff takes time because you're always checking your assumptions and testing stuff because when you write a platform to trade lots of exchanges, there's a ton of edge cases.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

boho posted:

e: I'm also in the running for a Build Automation Engineer. Anyone have experience with something like that? Is that dead-end?

I have several hats at work, but one of the hats I've ended up with is 'build and automated testing dude'. I really enjoy it, but I like writing tools rather than more traditional applications. It's pretty fun and challenging. Probably foremost in your mind is that every change you make must never remove the ability to build existing codebases, so changes can turn into an artform. As for 'dead-end' - depends upon your definition. At smaller companies where you're the only one, you will become the build guy, and you will be fixing the build and dealing with build migration problems and weirdass runtime issues for as long as you're there. As long as you enjoy that stuff, chances are the technologies you use will be fairly mainstream - Perl/Shell/Java/.NET/C++/CMake, so you're not hamstringing your future career.

If you enjoy being a really useful engine that all the other developers respect, then be a build dude. If you want a more customer facing role, and prefer writing apps to tools, then don't.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde
Depends on the place too - it's a minor uphill battle to make lasting friendships outside of work in a big place place like London (that and it's not a very outgoing city).

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

Tots posted:

End User Computing Programmer

SharePoint and/or Excel automation. I'm so, so, sorry.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

Tots posted:

I'll do any loving thing to not have to be a line cook anymore, I don't even care. And this isn't permanent, I'll be working on getting some open source contributions under my belt while I'm doing it so I can hopefully get a job doing something worth while after I graduate.

Depending on what it is, Excel automation isn't so bad (VBA's a pain, but as long as you're automating Office 2007 or higher, VSTO is a lot better than the old COM add-in wrangling we did of old). It's also a good way of getting really close to the core of the business, and interacting with end-users can be fun and rewarding when you solve their problems. If it's for a Front Office role in finance you will be a trader's slave however.

I've not done any SharePoint 2013 app development, but developing SharePoint farm solutions is its own brand of hell.

A C# based job will look better on the CV than VB, and if it's only a short term thing, take the job. But find out if/how much development will be in SharePoint.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde
Depends on how formal the company is. I work for a HFT firm, and we don't have any formal guidance, though we do pair interviews from time to time as a calibration exercise. Regarding syntax, I'd expect a CompSci graduate to be able to get syntax correct for whatever their uni's 'main' programming language is - typically Java in the UK. In the case of C#, I'd expect grads to know up to C# 2.0 language features (LINQ and async/await might not have been covered and async/await has some wonderful subtleties that catch out experienced devs). Syntax for Java-like languages should be bread and butter, you should be able to do it the same way a mathematician can do basic algebraic manipulation. I'm not a C++ programmer, but I can read it, and I'd expect a grad claiming it to be their preferred language able to knock up basic functions etc.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

Skuto posted:

IMHO this is extremely harsh and you're probably underestimating how hard it is.

Go on and code some basic programming exercise entirely in Notepad, finish it up, and only then run it through javac or cl/gcc. If it doesn't compile, are you read to hand in your resignation?

Java is one of my main languages and this week I couldn't for the life of me remember whether Java allowed "ArrayList<foo> bar = new ArrayList<foo>;" as syntax or not.

I don't think it's that harsh to expect a graduate to be able to sit down and knock out say basic Java 5.0 or C# 2.0 syntax code from memory. Harsh would be asking for code involving C# delegates/Java enums with constructors or other less used features of the language . If they can't knock out a class with a method which takes some inputs and spits out some output, it's not a good sign. Ignoring nerves, it suggests one of the following:

  • Their memory isn't very good.
  • They're probably not doing any programming outside of that required for their course, which suggests lack of enthusiasm. I don't expect employed devs to do programming in their spare time, but at uni is a different matter - they should be tinkering.
  • Least charitably, they're just not good enough.

We're pretty picky as a company, but I don't think it's that far out there a requirement. I don't know if our uni was unusual, but there were written exams with only a pen and paper where you had to implement programs.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

PlesantDilemma posted:

This is what I'm looking for here. If an interviewer thinks I messed up THING and it hurts me, is it because that interviewer puts personal preference on THING or because the company got together and said "Yo, THING is important make sure the peeps can do THING."

I'll be on the job market soon and like everyone else I'm just trying to deal with this Wild West situation of the interview where anything can be asked and it can all have different levels of importance to everyone asking the question.

Well that's what makes it a bit of a crapshoot. You will always be at the mercy of individual people's prejudices. e.g. If you put Haskell on your CV and can't even define foldl, that's my pet peeve since it means they're bluffing or were too lazy to skim through their old textbooks before putting it on their CV. The worst time was when someone said they were helping to take classes in Haskell but couldn't give me the type of it or its implementation.

It's not uncommon for different people to have fairly different opinions on a candidate, which is why you'll have discussions on candidates after.

What sector do you want to go into? The things you need to know for game development is going to be different to what you need to know for a job in financial software development.

Expect to be asked about anything and everything on your CV.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde
You don't need character to write software, just sheer bloody mindedness. Declared periods of non-employment are fine, but straight out blanks are bad.

Adbot
ADBOT LOVES YOU

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

gently caress them posted:

I'd kind of like to be considered "mid level" (whatever that actually means!) but, whatever. That's 3-5 years per every definition I've seen; it's a goal. What MAKES someone really mid level, though? Is there a quiet epiphany or is it just "hey kid, have a raise."? I'm asking because I'd like the next job I take to be one where I move up without having to change jobs.

It's a bit vague, but I'd view it as the amount of supervision you'd need on a greenfield project. As part of reducing risk, you'd probably need someone to help you design the architecture, and guidance in particular frameworks to use. You probably would need some pointers in picking up new technology or frameworks, and possibly some existing samples to crib from. Beyond that, you'd probably need to check in with someone maybe once a week/fortnight, and be expected to spot pain points before they become a massive issue/blocker, and either suggest workarounds, or know that you need to escalate them.

It's not exactly a "every X years you move to the next level". You need exposure and to be pushed. At bigger companies, it's certainly very easy to never get a chance to design anything, or even work on an N-tier system (you might just be developing Excel add-ins all day*). Looking back, after five years at my first company, I would consider myself to have been a junior/mid level developer, and then I changed jobs to join a team of one other developer for a hedge fund, and got massive exposure to a wider variety of things, and three years later I'm considered in the company to be a senior dev, mostly because I built a large chunk of stuff.

One way of knowing if you're a senior dev at your firm is when people ask for your opinion on stuff.

The three watchwords of improvement are exposure, reflection and humility. And sometimes just throwing stuff at the wall and seeing what sticks. If you work for one or two years in a job, and there's never an occasion where you think "I don't know if this solution is going to work or not", then you need to start looking for a new job, as you're not doing new work or learning new things, but just applying the same solutions to slightly different problems each time.

*As a former Excel/PowerPoint add-in developer, I have nothing against these, and there's a hell of a lot of nuances to them, but until recently most of them didn't exactly end up talking to external services or middleware or whatnot, so your horizons can often be a bit limited.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply