• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Differences between IT and Programming/Software Development Careers?

Assanova

Member
I work in IT and write a ton of code. Unless I am working on a project revolving around finances, there is almost no math. It is mostly just logic and solving problems. IT and software development are broad fields and you can usually find a job that fits what you are looking for.
 

Two Words

Member
problem is you still have a bunch of math classes to take in college.
i just switched from programing to IT because this very reason.
I only had to take Differential/Integral Calculus, Linear Algebra and Probability and Statistics classes in my CS degree. Any other class like Discrete Math isn’t really a mah class in the same way.
 

Vanillalite

Ask me about the GAF Notebook
As an SDE, I have no clue why people think math genius is necessary for the profession. It really isn't except in specialized cases.

When I look at candidates I'm most concerned with their ability to break down problems into logical units that are functional, flexible, and maintainable.

I'd also argue that larger companies actively avoid hiring "code monkeys". Design should be the most difficult part of software development. Implementation is trivial if the design is good.

The amount of people that have to do programming work in industry is fucking mega huge. By industry think factory.

It's not a small subset. Companies like Duke, P&G, J&J ect... hire a ton of CS people to do work. You can't half ass it in these jobs and not know the math and the nitty gritty vs just being able to problem solve.
 
After a year of helpdesk and two years of sysadmin work I eventually discovered I didn't want the type of stress that came with the job; as someone who likes rain, I hated that I started low-key panicking every time a storm rolled through, or wondering if I would get a full night's sleep or a midnight phone call. After working alongside the development team and getting a close look at the work they do I am now currently trying to pivot to that field. It's all down to personal preference of course, and getting your feet wet in a field and your reaction to it can be a defining moment in your career.
 
I just wanted to clarify something: Programming is a domain-specific field, and thus the question of whether you need math to be a good programmer is dependent entirely on what sort of programming you'll do. What you do need is logic and a passion for problem-solving, but besides that, math isn't an absolute requirement.
 

Micael

Member
Going to have to agree with the Math not being that big of a thing for most programmers, if you are just doing your usual boring line of business applications knowing how to do the basic operations will most of the time be more than enough, you might have to go really hard core and calculate VAT and Percentages from time to time, but that is really about it as far as Math knowledge goes.

for example even variable assignment in a default mutable programming language (aka most non functional programming languages) is different than variable assignment in mathematics, in most programming languages something like X = X + 2 is a totally valid statement, when in the world of mathematics (and sane programming languages) this is a highly illogical thing, since X cannot be equal to itself + something else, unless it is say a sphere in which case X may very well be 2X, but Banach-Tarski paradox is fake math anyway (not really just joking).

What you really are going to use and is going to be useful regardless of the type of programming you are doing is Logic, which does ofc have quite a strong correlation with mathematics.
Also if you are good at logic you will probably be good at math, so if you do need to pick up some field specific math, like say physics related stuff, you will be able to do so without that much issue (depending on how deep you go anyway).
Besides it is not as if you will need to understand the exact mathematics underlying something to use it, even something as simple as currying https://en.wikipedia.org/wiki/Currying has a fair bit of mathematics (logic) behind them, if there is something that you need to know about programming is that it relies heavily on abstraction, so you can do a whole lot without understanding everything that goes into making it.

Should also be noted that if we do in fact live in a world where most programmers can't even solve the fizzbuzz question https://blog.codinghorror.com/why-cant-programmers-program/ then programming is actually also not necessary to be a programmer.

To know if you will like programming is easy, pick a simple project (something you would like to do), pick a language (python seems to be all the rage right now), and do that project in that language, you can pick up programming pretty quickly, the code you write will be atrocious, but you will at least get an idea of if you want to do it for a living or not.
 

Vanillalite

Ask me about the GAF Notebook
What math do you need to know?

Everything from basic add/sub to multi variable calc, diffy q, and everything in between.

Edit: I agree you don't need to know high level math to be a software developer. I just despute the tunnel vision that it's just a small subsect of programmers that do. There just not in the quick buzz word fields of mobile apps or web dev or whatever.
 

onipex

Member
Scripting (JS, HTML, ect) is another way to get a job as a developer. A lot of Web Developer
degrees are not heavy on math.

My wife has such a degree and is a senior developer for a fortune 500 company. Her job title is Sr. Software Developer. I know for a fact that she didn't take high level math classes, because we attended the same school. I was in those high level math classes and wish I took her route instead.

You can learn everything she does online.

I didn't complete my degree and I'm a supervisor in a network operating center. I'm not a network engineer and don't even have a Network+ certification.I have an ITIL Foundations certification, but I got my job by networking with people.

I know other's without IT degrees that got into IT with IT certs. My cousin for example has some kind of history degree but got an IT job on a network admin team with a CompTIA Security Plus cert.
 

haimon

Member
Not a developer myself but worked in qa for over 10 years. IT also has plenty of script writing especially in Dev ops.

I have managed to transition form qa to product management but at least here in the Israeli tech industry that's not very easy.

Here we have a ton of Dev ops (it) and all kinds of software engineer jobs.

Coding is something I never could get into really, but I love tinkering with servers and logs and such.
 

Two Words

Member
Everything from basic add/sub to multi variable calc, diffy q, and everything in between.

Edit: I agree you don't need to know high level math to be a software developer. I just despute the tunnel vision that it's just a small subsect of programmers that do. There just not in the quick buzz word fields of mobile apps or web dev or whatever.
I think strong algebra skills are important. But things like multi variable calculus are going to depend on what sector you’re working in.
 
most math I have done relates to Big O stuff.

unless you are a in a field in which calc level and above math is required, it has been basic algebra and more logic type of problems.
 

BreakyBoy

o_O @_@ O_o
Are there job positions that can have you do a little of both?

There is, sort of. That sort of thing isn't an entry level role though.

The job keyword you're looking for is "DevOps". If you're particular about being in the Security side of it, "DevSecOps" has been getting thrown around in some circles for a while now, but it's not something I'd expect to find a lot of hits for when job hunting.

Honestly, considering you're just starting out, this is probably a fine long-term goal, but realistically, if this interests you, then you should start with getting a job in IT or Operations, and then just learn programming as you go. You're going to naturally find repetitive tasks that you can automate, and programming is the way to do it. Over time, you'll gain experience and the scope of your responsibilities will grow/change, and you'll apply the lessons you've learned to those domains, and suddenly you'll find that you tick most of the requirement boxes people are looking for.

I suppose I should actually explain the field some:

This is a field that is in high demand (and therefore rather lucrative), particularly in the web/cloud/startup shops you'll find all over the country, but predominantly in tech hubs like Silicon Valley, Seattle, New York, etc. So, particularly when starting out, you might need to be prepared to move if you're good/lucky enough to land a job. Remote work is becoming increasingly common (I did it for 5 years, across three companies), but it's unlikely you'll land a remote gig without at least a few years of prior experience.

Speaking of experience, it's for all intents and purposes a "jack of all trades" role, which means any employer looking for this sort of thing is looking for someone with already demonstrated experience in the field. It really depends on how the company defines the role, but in general, you can be expected to at least touch every single part of the technology stack, and directly interact with every engineering team in the company.

I've had to work on/with (back- & front-end) software development, infrastructure architecture, networking, security (internal & external), database administration, uptime monitoring/alerting... I'm probably forgetting some things, but you get the idea. I'm nowhere near the foremost expert in any of these fields, but I'm comfortable in all of them. You have to be capable of digging in to a domain you may have little practical experience with and either figuring out a basic plan of action by yourself (when no other expert is available on the team), or plugging into an existing dedicated team, and helping them figure out how to quickly interface with other parts of the infrastructure/stack and if possible, automate the process.

And as for math: well, I don't generally need to use anything beyond Algebra concepts, but if I end up working with a team that's doing something math heavy (i.e. I'm interfacing with a Machine Learning/Big Data team now), then being able to at least understand the basic concepts of what they're working with could potentially be a key part of figuring out ways to help them set up the right infrastructure to solve those problems. It's really not common though, so I wouldn't stress about it if you go down this road.
 

Ashsturm

Member
From my experience IT is going through a bit of a transition process at the moment. Particularly in my field, networking, there's a huge shift towards automation skills and generations of engineers without a clue of how to even begin scripting.

If you can go into an IT role with an appetite for programming/scripting to make things more efficient it's a great way to get noticed and move up while still indulging some of your programming tendencies

After getting some experience you can choose to deep dive into a speciality, become a team manager or bring together all these technologies into a solution as a technical architect.

I've found there to be huge flexibility in IT once you've got some experience to know what direction to take. Unfortunately it's also an industry with some very bad employers who see it as only a cost center with no forward thinking and preference for the status quo. The key is to not become jaded and stagnate in a helpdesk role.

Can't speak for programming but it strikes me as an area that could be difficult to stand out in, especially as future generations get introduced to it earlier at school
 

captive

Joe Six-Pack: posting for the common man
I'm so glad I'm doing CCNA training soon.

dont waste your time. Networking is getting easier and easier and Software Defined Networking is going to take over soon.
I have a friend who is CCIE and he cant get a job because he's "too qualified"

that is not to say you wont be able to get a job as a networking person, just know that that field is changing.
 

SOLDIER

Member
Done both, software development is far better if you hate speaking with customers on the phone. A point of pride for me right now is my desk has no phone. My job title is Software Engineer.

If you have some sort of degree already, I recommend just attending a local Software Dev camp, make sure its 9-5pm and lasts for atleast 3 months or more. They will typically hook you up with a junior web dev gig, and from there the sky is the limit.

Could you explain in more detail how this works? What would I learn and what kind of certificate would I get upon completion? Is this the best way to get my foot in the door and work from there?

And if it’s a 9-5 schedule then I wouldn’t be able to work anymore, unless it’s not every day (and even then it’s unlikely I could get approval for every week). I wouldn’t commit to something like that unless it was a guarantee I would get a better job in three months.
 

dabig2

Member
You don't need to be good at math to be a software developer. You may need to be decent at math to get through undergrad.

Yep, that's basically been my experience. You don't necessarily need to apply math on the job, at least not like how you do it in school when working out a math problem. Knowing how to solve problems, formulate algorithms, and and logic are far more important. And if you're doing full stack development, you can add design principles to that as well.

But if you're getting a CS degree, you better become real comfortable with math because you will be learning statistics, linear algebra, Numerical Analysis, Matrix Analysis, Discrete Mathematics (kinda math), and at least Calc 2. I myself took a shit ton more math than even that in college, but that's because I started out in ECE and I generally liked math which helps!

And I've barely had to use any math that I learned after freshman year so far in my career. Which is actually a little depressing because I'm forgetting concepts all the time now since I don't have to directly apply them. The "trick" to modern software development is knowing when a problem has already been solved by people much smarter than you, and just knowing when and how you can apply that knowledge to your own design.
 
If you go for a traditional Computer Science degree, you'll do some math. Most of the math you learn won't apply to the math you do in code. If you're slinging code, you'll be most concerned with algorithm efficiency. Efficiency itself is measured in math jargon (linear, exponential, logarithmic, etc.).

I love coding, it's probably my favorite thing to do, but it's hard. I don't have the traditional brain for it, so I have to put extra work in. There's 16-20 hour days at times. But I enjoy it. I am constantly learning.

I can't speak much about IT. I know what you'd get for a Sec+ cert but that's about it.
 
Unless you are working on machine learning or AI and developing algorithms for those programs you won't need high level math skills for programming. Most programming jobs are just writing the code for algorithms already designed by others. If you are a software engineer that's a different story. Software engineer is very different from software developer imo.
 

JeTmAn81

Member
There's very little math in most software development. There's plenty of math in computer science, but software development usually consists of using established computer science concepts to create applications. If you're on the cutting edge you'll be inventing new things, but most software development isn't on the cutting edge.
 
How did you transition to development? And which do you like better?

I earned my CS degree part-time while I worked full-time, and then was able to snag a development position in the same company.

Because I was a field IT tech, I walked a lot during the day, and I liked that. I also liked working with/helping a few people. Largely, however, being an IT tech makes you start hating people. It also was completely unchallenging - Windows, macOS, some Linux...meh. The biggest issues are the people.

Being a software developer is a very different experience. I'm still learning a lot every single work day. Our tech architect has >15 years of experience in the field, and he still is learning new things. You are a lot less likely to become bored as a developer vs. being a support tech, I'd say. Of course you can have annoying clients, still, but a lot more is under your control (this also means a higher degree of ownership/responsibility).
 
Lol I have an A+ have been doing general IT on and off since 2010 plus some contract work I did for Apple Maps and have no idea where to do from here. Currently doing remote help desk. I'm getting into web design but that'll take a couple years. What should I do in the meantime?
 
Could you explain in more detail how this works? What would I learn and what kind of certificate would I get upon completion? Is this the best way to get my foot in the door and work from there?

And if it’s a 9-5 schedule then I wouldn’t be able to work anymore, unless it’s not every day (and even then it’s unlikely I could get approval for every week). I wouldn’t commit to something like that unless it was a guarantee I would get a better job in three months.

I know very little about coding camps but if you want to be a software dev you don't need certs. The more important thing to do if you don't have a compsci degree is to build a portfolio.

Companies care about what you've created. The better software developers I know were tested on their coding abilities before they even got interviews.

Almost like a skills based entry exam.

Also, if you want to do information security you will most likely still need to know coding. Even as a Sysadmin on a DevOps team you will need to know scripting languages such as bash, python, perl, etc.

In all IT fields you really have to continue learning even when you have the career, if you want to stay ahead of the game or move up.
 
Done both, software development is far better if you hate speaking with customers on the phone. A point of pride for me right now is my desk has no phone. My job title is Software Engineer.

If you have some sort of degree already, I recommend just attending a local Software Dev camp, make sure its 9-5pm and lasts for atleast 3 months or more. They will typically hook you up with a junior web dev gig, and from there the sky is the limit.

The first statement is a bit false. Just because you're writing code doesn't mean you wont be talking to people. You're going to have to talk to your teammates: product/project managers, other devs, designers, qa, VPs (maybe).

I also highly recommend against boot camps as a career entry way, especially now.
 

subrock

Member
You should consider IT if you want to use tools that already exist and want to become "fluent"at using them. You should become a software developer if you are creative and fucking love math.

This depends on the field. I'm an iOS Dev and I would say that hardcore math comes into play maybe once a year.
 
What's wrong with boot camps? I was thinking in taking one to put me on speed on a usable language (I have been using Haskell for the last 4 years...)

I should say, there are some that are better than others but overall a lot of them can just be paper mills. There's tons of stories about how bootcamps did nothing to provided actual, good valuable software skills to people.

If I'm evaluating a resume I care more about your projects than your actual history of education. So simply going to a boot camp for a week isn't going to get you in the door any faster.
 
I'm going back to school next year, and I was thinking of going for Computer Science. Thing is, I only have a passing interest in everything surrounding it, and currently think I'll only look at it as a "career", and never really a passion. I do alright with math, but only just alright.

What's a good litmus test to see if I'll be able to swing it, and be comfortable with this being my career for the next 35 years?
 
I'm going back to school next year, and I was thinking of going for Computer Science. Thing is, I only have a passing interest in everything surrounding it, and currently think I'll only look at it as a "career", and never really a passion. I do alright with math, but only just alright.

What's a good litmus test to see if I'll be able to swing it, and be comfortable with this being my career for the next 35 years?
Scope out a small / medium project and see if you can take it to completion and enjoy it. Ideally working with a small team. Repeat a few times.
 

oxrock

Gravity is a myth, the Earth SUCKS!
This depends on the field. I'm an iOS Dev and I would say that hardcore math comes into play maybe once a year.

I'm gonna echo this, it really depends on the project you're working on and the libraries you're using. I was always scared off programming by being told you had to be some math genius to be proficient. For me it's hardly ever something I need to worry about and never more than a bit of googling can solve.

As for learning/gaining practical experience I would suggest www.freecodecamp.org if you're into web development. There are also lots of free classes on other programming focuses available on www.udacity.com. They also offer "nano degrees" if you'd like a piece of paper you can show off.
 

Relix

he's Virgin Tight™
Another one for math not really that big in programming, it's 90% algebra when you need to work on math stuff. Now if you are going into AI or machine learning then yes, math is an absolute must.
 
dont waste your time. Networking is getting easier and easier and Software Defined Networking is going to take over soon.
I have a friend who is CCIE and he cant get a job because he's "too qualified"

that is not to say you wont be able to get a job as a networking person, just know that that field is changing.
Is cloud/admin a good way to go?
 
For those who want to put their math to use or want an example of actually utilizing high level math in programming, look up a few graphics programming tutorials. There's where your math will definitely come into play, hell even dabbling into HLSL/GLSL will tell/show you if you want to go down that route or not.

As someone who has experience in both IT and Software development (CS major/graphic design minor, and CCNP/MSCE-Server Infrastructure), IT is definitely the more laid back of the two. Software development is challenging and depending on where you work your hours WILL be hectic (work for your federal or state government if you want a stable life...but in exchange your pay is gonna be traaaaaash). IT is about mastering existing tools and applying to solve problems. Software Development is about creating tools to solve problems, at the end of the day in both industries you're there to solve problems. Software development is more "creative" in the sense there are 100s of ways to approach a problem from a programming/logical perspective (want to see what this means? Just go to a place like HackerRank and see just the sheer number of approaches folks have to arriving at any of the needed solutions).

You can be a software developer and never once be "creative" in the sense of art/graphic design/UX design. Folks in this thread seem to have conflated the various creative types into one nebulous definition.

Also if you don't like dealing with folks who don't understand your field constantly, IT might not be for you. You'll be conversing with them as much if not more than you will your coworkers, and it always makes you want to drink.

As an SDE, I have no clue why people think math genius is necessary for the profession. It really isn't except in specialized cases.

When I look at candidates I'm most concerned with their ability to break down problems into logical units that are functional, flexible, and maintainable.

I'd also argue that larger companies actively avoid hiring "code monkeys". Design should be the most difficult part of software development. Implementation is trivial if the design is good.

Because CS majors are the backbone (for lack of a better phrase) in our industry, and pretty much all CS majors have a bunch of math classes. Folks are constantly told if they want to become a programmer then they have to get a degree in CS, they look at their class schedule and see a bunch of math classes and drop out. Word spreads.
 

Micael

Member
What's wrong with boot camps? I was thinking in taking one to put me on speed on a usable language (I have been using Haskell for the last 4 years...)

4 years working on a FP language and then going back to a non FP language, that is going to hurt.
 

Lonely1

Unconfirmed Member
I should say, there are some that are better than others but overall a lot of them can just be paper mills. There's tons of stories about how bootcamps did nothing to provided actual, good valuable software skills to people.

If I'm evaluating a resume I care more about your projects than your actual history of education. So simply going to a boot camp for a week isn't going to get you in the door any faster.

Would you take logical/numerical/ALife experiments done in Haskell as valuable software skills? :p

I'm thinking on boot camps since most of job openings I see are like: "PHP/Java/Python/C/SQL developer required".

4 years working on a FP language and then going back to a non FP language, that is going to hurt.
How in demand is Scala!? :O
 
Would you take logical/numerical/ALife experiments done in Haskell as valuable software skills? :p

I'm thinking on boot camps since most of job openings I see are like: "PHP/Java/Python/C/SQL developer required".


How in demand is Scala!? :O

When bootcamps is referenced in this thread context they mean the ones that are like 20K and promise to make you a rockstar developer in 4 weeks with 0 coding experience.
 

Micael

Member
How in demand is Scala!? :O

Scala certainly has a lot more demand than Haskell, or really any functional language (that I know of), although if demand is the biggest consideration there are languages beating Scala hand over fist there, stuff like python for example has many times more job offerings.
That being said Scala is probably the best pick for someone that is coming from Haskell, but wants something with more job demand, although Haskell people seem to have some issues with Scala.
 

WhatNXt

Member
Having done both the only advice I would offer is this:

- I find programming to be more fun and creative. I never stop learning.
- When you're in general IT / admin or networking you're always learning too, but in my experience the overwhelming pressure is to just make things "work".

The enjoyment to be derived from the latter probably depends a lot on your level of responsibility. Too much responsibility and too little time, or too little resources (too small a team) or crap understanding of the topics at hand from above is a recipe for the kind of stress that is just not worth it. If you're going to take work in a technical discipline, make sure the people above you understand it and what it entails. I've worked with too many managers who don't have a fucking clue. They don't want to be "blinded by science", or tricky things like licensing or feasibility, they just want it done.

For me, it felt like there was a wall with sys admin and networking. I either knew how to set up the network the way they wanted to or I didn't. Programming is different. It feels like the sky is the limit if you have the imagination, and the only inhibiting factors are time and resources. I enjoy the challenge of programming more.

In general both are well suited to people who like finding 'solutions'. When you're in a good environment, the feeling of satisfaction for finding the right solution, and in such a timely way that it impresses people - there's nothing quite like that. But another piece of advice, or more of a warning, would be: when you're good at something, people want more from you. More work, same amount of time. Be careful of teams or management who have you creating things too quickly, at pace, and leave you little time to support what you've already created. And be careful of teams that don't have a proper planning, iterative agile system in place, and teams that never sign anything off as complete or finished. Be careful of teams that don't involve the technical roles or development staff in decision making. Scope creep is a nightmare when it's not your fault.

I think what I'm trying to say is - the company and the environment are almost more important than the career you choose. The career you choose is still important, but try and go in to something where you can actually be happy and productive. If you enter a job and its shit and unenjoyable, don't waste your time like I did, get out, move on to better things and let some other poor sap do it.
 

kendrid

Banned
Lol you guys are totally overblowing math for programming.

Especially in an entry level job.

I don't understand it either. Unless you are doing graphics or AI, normal business programming doesn't involve much math. I know a few guys at my old job that were doing graphics driver level coding and that was some crazy stuff. From my experience that is rare but it does depend upon where you work.

I can think of one time when I did have some complex formulas but there were given to me. I just had to convert them into code and that was pretty simple.

I hire programmers and when I hire it is based off of problem solving and analytical thinking. The college math classes should help someone develop those skills if they don't have them already.

That being said, you do have to get through those classes to get the degree.
 
Top Bottom