Jump to content

What is the future of jobs in programming?

TechFnatic

as far as I know, C.S. classes (in high school) doesn't really talk about math. The only way math would be related to C.S. courses directly (that I can think of) is in concepts like functions. 

Yeah, I think the its very conceptual type thinking and I should be able to figure that out. The fact that they ask for such high grades in math just scares me away.

Link to comment
Share on other sites

Link to post
Share on other sites

App development is huge right now, but it might very well just be a fad, just like web design was huge 10 years ago. So I want to get into programming and I will be going to school for it, the thing here is what do you think will be the most prosperous/ in demand programming job in 5 years from now? 

 

PS. I am not interested in computer science at all, but I want to get into programming, what is the best route/courses to take in university for this?

Web development is still huge. More and more companies move their services to a web-based platform. Think about soundcloud, Office Online, etc.

Programming is only going to get more necessary. It's also always evolving. People are always looking for more things to do, new ways to do things we already do, etc.

I'm in college right now, haven't even finished, and I already got offered a job with good pay, just because I happen to do what they needed. Which is program and design a bit of hardware. That's how good this industry is right now.

 

Software engineering won't become obsolete anytime soon. 

 

 

As for Maths; once you get into the more industrial field, you'll have to know maths. Think about programming control systems, for example: http://web.mit.edu/2.151/www/Handouts/FirstSecondOrder.pdf.

Link to comment
Share on other sites

Link to post
Share on other sites

Firstly don't worry about the mathematics. Citing my own experience: Everyone will by de facto rattle on at you about how you won't be getting very far being bad in that area (they can't help it because the sad fact is, they just don't realize that they are complete and utter imbeciles). I shall tell you now that if you really want this then it's not going to be as much of a problem as they all like make it out to be. You'll always find ways around it even in the more Computer Science related areas.

 

Embrace the fear, recognize it and then turn it into an advantage and move on with life. If it's really bad then perhaps seek diagnosis for learning difficulties. It was on my BSc degree that I did just that and was diagnosed with Dyscalculia and Dyslexia. They haven't really phased me in getting to where I am now.

 

Secondly to address the various pathways; this is a little specific to the UK but I can imagine how it could apply elsewhere: There are basically two routes when approaching education for this industry. There is Computer Science and Software Engineering, there's also Computing but we won't go there (it's for the people who want to write software but wuss out and instead go into business or generic IT).

 

Software Engineering focuses on everything to do with building software. A good course offering this will build on the foundations of earlier academic modules that were only concerned with teaching a language or languages. It will do so by teaching language agnostic software design patterns, architecture, programming principals and good practices. All of which if properly taken on board by the astute student will be worth 100x over what they paid to secure a place on said course.

 

Computer Science can generally focus on more algorithmic and mathematical domains. Think of it like a discipline that is more concerned with building the tools, developing the methodologies and researching the technologies to be used for building Software. You'll also likely see a lot of very cool prototype play as well as the R&D.

 

All of that said the two inevitably cross over at points. Combine them later on and you will truly unlock many doors. Find yourself in the wrong domain though and it will be like unleashing a monkey with a machine gun.

 

Moving onto professional titles: In industry we often find a multitude of things but they can generally be distilled down to these three: Software Engineer, Software Developer and Computer Scientist. The arguments about all the various differences between each tend to get quite long and heated. Thus what I'll say next is really based on my own opinions drawn from what I've seen in the industry to date.

 

The Software Developer: One might expect to find themselves seated at a desk in an office writing higher level applications for most of their time in this role. Concerns tend to be more desktop/mobile/RIA related projects. These guys could be seen as the general grunt of the Software industry. They get stuff done. Pay is moderate.

 

The Computer Scientist: These guys generally get to do lots of very cool but often very difficult things relating to R&D. The work can shift context quickly, sometimes leaving one without a sense of closure. Time scales can be short and travel may feature as a larger component. Pay is obviously higher on the scale but job security may drop as requirements can come about in bursts.

 

The Software Engineer: It's a little bit of a middle ground. Often it's seen as a Software Developer that is more concerned with the bigger picture, the wider architecture as well as the detail at the lower levels. One would not find it uncommon to get to work with hardware often implementing from the embedded all the way up the stack to the desktop and even web domains. One may bring the CS's R&D to the production code base. Pay is moderate to high and job security it higher up the scale. I'd say this role is the generalists paradise (I'm bias of course).

 

My advice for building an early career is to stay as general as possible. Try to cover as many languages and technologies as you can and learn your design patterns, programming principals and good practices as a priority. There's plenty of time for specialization later once you settle in (though personally I think specialization is a bit outdated in today's climate). Be wary of recruiters, they try to pigeon hole you, treat everything that they say to you as a lie :)

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

Firstly don't worry about the mathematics. Citing my own experience: Everyone will by de facto rattle on at you about how you won't be getting very far being bad in that area (they can't help it because the sad fact is, they just don't realize that they are complete and utter imbeciles). I shall tell you now that if you really want this then it's not going to be as much of a problem as they all like make it out to be. You'll always find ways around it even in the more Computer Science related areas.

 

Embrace the fear, recognize it and then turn it into an advantage and move on with life. If it's really bad then perhaps seek diagnosis for learning difficulties. It was on my BSc degree that I did just that and was diagnosed with Dyscalculia and Dyslexia. They haven't really phased me in getting to where I am now.

 

Secondly to address the various pathways; this is a little specific to the UK but I can imagine how it could apply elsewhere: There are basically two routes when approaching education for this industry. There is Computer Science and Software Engineering, there's also Computing but we won't go there (it's for the people who want to write software but wuss out and instead go into business or generic IT).

 

Software Engineering focuses on everything to do with building software. A good course offering this will build on the foundations of earlier academic modules that were only concerned with teaching a language or languages. It will do so by teaching language agnostic software design patterns, architecture, programming principals and good practices. All of which if properly taken on board by the astute student will be worth 100x over what they paid to secure a place on said course.

 

Computer Science can generally focus on more algorithmic and mathematical domains. Think of it like a discipline that is more concerned with building the tools, developing the methodologies and researching the technologies to be used for building Software. You'll also likely see a lot of very cool prototype play as well as the R&D.

 

All of that said the two inevitably cross over at points. Combine them later on and you will truly unlock many doors. Find yourself in the wrong domain though and it will be like unleashing a monkey with a machine gun.

 

Moving onto professional titles: In industry we often find a multitude of things but they can generally be distilled down to these three: Software Engineer, Software Developer and Computer Scientist. The arguments about all the various differences between each tend to get quite long and heated. Thus what I'll say next is really based on my own opinions drawn from what I've seen in the industry to date.

 

The Software Developer: One might expect to find themselves seated at a desk in an office writing higher level applications for most of their time in this role. Concerns tend to be more desktop/mobile/RIA related projects. These guys could be seen as the general grunt of the Software industry. They get stuff done. Pay is moderate.

 

The Computer Scientist: These guys generally get to do lots of very cool but often very difficult things relating to R&D. The work can shift context quickly, sometimes leaving one without a sense of closure. Time scales can be short and travel may feature as a larger component. Pay is obviously higher on the scale but job security may drop as requirements can come about in bursts.

 

The Software Engineer: It's a little bit of a middle ground. Often it's seen as a Software Developer that is more concerned with the bigger picture, the wider architecture as well as the detail at the lower levels. One would not find it uncommon to get to work with hardware often implementing from the embedded all the way up the stack to the desktop and even web domains. One may bring the CS's R&D to the production code base. Pay is moderate to high and job security it higher up the scale. I'd say this role is the generalists paradise (I'm bias of course).

 

My advice for building an early career is to stay as general as possible. Try to cover as many languages and technologies as you can and learn your design patterns, programming principals and good practices as a priority. There's plenty of time for specialization later once you settle in (though personally I think specialization is a bit outdated in today's climate). Be wary of recruiters, they try to pigeon hole you, treat everything that they say to you as a lie :)

Thanks a lot for the advice, you say you're not too fond of math yourself, what was your 12th grade math mark like? I'm at around 70 percent in pre calculus and that is the only thing that scares me atm.

Link to comment
Share on other sites

Link to post
Share on other sites

A lot of it will depend on your specific institution. A major in CS at my university required the following 6 math courses be taken in addition to the CS courses

  • 3 calculus
  • 1 linear algebra
  • 1 discrete
  • 1 statistics

If you have to do anything similar, you'll likely find the different areas vary in terms of difficulty.

 

When it came to my required CS courses only discrete math was really used. It's a lot different than the math you're used to though so it's hard to say how difficult you'll find it. Some courses that were optional were more math heavy but I didn't take them. I took the optional courses more focused on software development and programming instead.

Link to comment
Share on other sites

Link to post
Share on other sites

A lot of it will depend on your specific institution. A major in CS at my university required the following 6 math courses be taken in addition to the CS courses

  • 3 calculus
  • 1 linear algebra
  • 1 discrete
  • 1 statistics

If you have to do anything similar, you'll likely find the different areas vary in terms of difficulty.

 

When it came to my required CS courses only discrete math was really used. It's a lot different than the math you're used to though so it's hard to say how difficult you'll find it. Some courses that were optional were more math heavy but I didn't take them. I took the optional courses more focused on software development and programming instead.

 

CS at UTSA only requires Calculus 2.

 

Also discrete and math foundations of cs

Yeah, honestly i'm not bad at math, but I can't say I'm great either. I think you have to be really analytic to program rather than good at math

Link to comment
Share on other sites

Link to post
Share on other sites

Yeah, honestly i'm not bad at math, but I can't say I'm great either. I think you have to be really analytic to program rather than good at math

 

Yeah a 70 average in pre-calc doesn't automatically mean you'll do poor in university. You might not breeze through it and have to put in some effort, but I doubt they'll stop you and you may find you're better than you think at it.

 

Universities tend to have plenty of opportunities to get help. Professors, teaching assistants, other students, help centres, etc. On top of that, the internet will be your guide. For anything you'll learn in a math course you can probably find online written/video tutorials that may explain it better.

 

The only thing I found for the math courses, and this goes for most courses, is that you can't slack off in them or it gets overwhelming.

Link to comment
Share on other sites

Link to post
Share on other sites

I'm not sure how it is in the US/CA, but at my Uni, there were basically 2 types of degree. Computer Science, and IT. Or it was that when I joined, its now Applied Computer Science or some other name.

 

Basically, IT is the same as my course, Comp Sci, but leaves out all the maths.

So, in first year I did an Algorithms module, focusing on algorithm analysis, stuff like big-oh notation, and a Mathematics Module, focusing on stats and a few other parts.

IT instead did web based programming, which Comp Sci did none of, and something else.

We both did a Core Programming Module in C++, Python and Java, then in second year we are both doing modules related to Software Engineering.

 

The main difference was literally just maths, Comp Sci flat required an A grade in Maths to get onto the course, IT just didn't do those maths based modules.

This does carry through though, the maths modules where pre-requisites for second year modules in AI, Algorithms II and some other bits.

If some of the more maths heavy programming sounds interesting might be worth trying to get your head down, if not you should be able to get away with it.

 

What I'm trying to say is, and I don't know if it does apply in Unis or whatever you are looking at, is there is possibly a course with less/no maths in, but the exact same programming.

CPU: 6700k GPU: Zotac RTX 2070 S RAM: 16GB 3200MHz  SSD: 2x1TB M.2  Case: DAN Case A4

Link to comment
Share on other sites

Link to post
Share on other sites

Thanks a lot for the advice, you say you're not too fond of math yourself, what was your 12th grade math mark like? I'm at around 70 percent in pre calculus and that is the only thing that scares me atm.

 

A 12th grade equivalent was me leaving school at 15 with an F in my maths GCSE (most of them were Fs for that matter) - basically 0% or a complete and total fail. I had no prospects or interest at the time to pursue higher education, instead I went to work full time in various menial jobs for most of my early life.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

Yeah a 70 average in pre-calc doesn't automatically mean you'll do poor in university. You might not breeze through it and have to put in some effort, but I doubt they'll stop you and you may find you're better than you think at it.

 

Universities tend to have plenty of opportunities to get help. Professors, teaching assistants, other students, help centres, etc. On top of that, the internet will be your guide. For anything you'll learn in a math course you can probably find online written/video tutorials that may explain it better.

 

The only thing I found for the math courses, and this goes for most courses, is that you can't slack off in them or it gets overwhelming.

 

 

I'm not sure how it is in the US/CA, but at my Uni, there were basically 2 types of degree. Computer Science, and IT. Or it was that when I joined, its now Applied Computer Science or some other name.

 

Basically, IT is the same as my course, Comp Sci, but leaves out all the maths.

So, in first year I did an Algorithms module, focusing on algorithm analysis, stuff like big-oh notation, and a Mathematics Module, focusing on stats and a few other parts.

IT instead did web based programming, which Comp Sci did none of, and something else.

We both did a Core Programming Module in C++, Python and Java, then in second year we are both doing modules related to Software Engineering.

 

The main difference was literally just maths, Comp Sci flat required an A grade in Maths to get onto the course, IT just didn't do those maths based modules.

This does carry through though, the maths modules where pre-requisites for second year modules in AI, Algorithms II and some other bits.

If some of the more maths heavy programming sounds interesting might be worth trying to get your head down, if not you should be able to get away with it.

 

What I'm trying to say is, and I don't know if it does apply in Unis or whatever you are looking at, is there is possibly a course with less/no maths in, but the exact same programming.

 

 

A 12th grade equivalent was me leaving school at 15 with an F in my maths GCSE (most of them were Fs for that matter) - basically 0% or a complete and total fail. I had no prospects or interest at the time to pursue higher education, instead I went to work full time in various menial jobs for most of my early life.

What do you guys think of the future of web development, im stuck between apps and web dev

Link to comment
Share on other sites

Link to post
Share on other sites

Computer science is programming...

 

I learned how to program a bit before I got my degree, and I can tell you that learning the math and underlying paradigms really makes you a better programmer. In a sense, it's hard to be a good programmer without understanding that information.

 

As to the math... most of it you will never use (e.g., calculus), however you NEED to understand set notation/theory as well as discrete mathematics and logarithms... there's no way around it. For instance, if you cannot determine when to use an ArrayList vs. a LinkedList vs. an array you will have serious issues with your code from a design standpoint.

Link to comment
Share on other sites

Link to post
Share on other sites

  • 2 weeks later...

Computer science is programming...

 

I learned how to program a bit before I got my degree, and I can tell you that learning the math and underlying paradigms really makes you a better programmer. In a sense, it's hard to be a good programmer without understanding that information.

 

As to the math... most of it you will never use (e.g., calculus), however you NEED to understand set notation/theory as well as discrete mathematics and logarithms... there's no way around it. For instance, if you cannot determine when to use an ArrayList vs. a LinkedList vs. an array you will have serious issues with your code from a design standpoint.

To add to what you were saying about math, if you are a web developer, it might not matter. However, if you were to aggregate a database for scientific research, you might need to know some calculus here and there.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×