I want to ask a question about a programming career: now I am studying IT at the University but this course is filled with mathematical concepts which are so complex and difficult. I'm not saying that I don't want to study, absolutely not, instead I love studying and know new things but I want to concentrate my time on what I like. My dream is to become a very good programmer, with a wide culture about Unix, Linux (for example), C, Ruby, Python and other languages, because with these tools I can create what I want: because I know what I want to do in my life.

In conclusion, I want to ask which are the benefits and risks of attend a studying path different from the University, more focused on what I need.

  • That depends on your location and the types of different paths available for you. – skymningen Mar 16 '17 at 10:17
  • Are you talking about leaving university to study these instead? Why not just study them in your own time while also learning in university? Mathematical concepts are an important part of computing though and trying to avoid them instead of learning it is a bad idea. – ayrton clark Mar 16 '17 at 10:17
  • @ayrtonclark Yes I mean leaving university to study them deeply. Now I am doing what you said but sometimes I think that hours of lessons can be summarized in order to optimize time: my big problem is that I am afraid of losing precious time that I can dedicate on specific subjects by integrating the mathematical concepts when I need them. Thank you for your comment! – Silver978 Mar 16 '17 at 10:33
  • @skymningen As regards my location, unfortunately there is only an IT course in my university and other schools don't have this type of path. I was a bit forced when I choose this course. – Silver978 Mar 16 '17 at 10:35
  • With location I meant your country, as different countries have different systems including different other optional paths (and what the names of this paths mean can be different, too even if they are called the same in another location). – skymningen Mar 16 '17 at 11:20

It is possible to be a very good programmer without any University education. Learning on your own means you need a lot of discipline.

Benefits of learning outside University

  • You can focus on what interests you.
  • If you know what you want and what you need you may be able to advance faster.
  • If you learn by working on projects you have more experience to show for when applying for a job.
  • If you wish to focus on simply programming (no software architecture, no algorithms), just writing the code for a given task then many things thought at the University might be overkill.


  • You probably don't know what you need to learn. University gives a good foundation (math, algorithms, ..), there may be a lot of courses that you would not think of taking that will actually benefit you a lot in the future.
  • You may learn better in a controlled environment. Self study is not easy, especially when you need to learn something you are not passionate about right away, for example:

    filled with mathematical concepts which are so complex and difficult

  • Some employers may expect a University degree.

As far as I understand: University's role is not to teach you how to program (apart from a first introduction into some languages). University teaches you concepts and gives you problem solving skills. Learning programming is often something you have to do extra.

  • I wanted to second the remark about employers may expect a University degree. You may be a great programmer, but when applying for a position, the other applicants will likely have degrees. Universities also give you experience working with a team, learning software methodologies, etc. Plus, if you get the job, then you will still be competing with your peers who likely have degrees for promotion/leadership roles. – curt1893 Mar 16 '17 at 14:17
  • Thank you for the explanation, I'll think about what you said – Silver978 Mar 16 '17 at 20:13

A few things to remember about University are these:

  • University teaches you to think - it doesn't train you for a job.
  • If you are studying a scientific discipline at Bachelor level, your course should introduce the main scientific skills and disciplines and background information to give you a good grounding in the science and enable you to study further in a specialist area (Honours, Masters, PhD study).

With that said: Mathematics forms a large part of computer science. Logic and mathematics and computing all mash together to form a cohesive scientific whole.

As a programmer with many years of experience and a degree in Computer Science, it is naive to think that leaving University without that grounding and "studying Python, C and Ruby" will give you the tools you need to really excel in the tech industry. The best programmers I have ever met and worked with all had backgrounds in Computer Science at University level.

The toolset choices of those people after University (i.e. the choice to study Ruby, Python or C) then had that base knowledge/fundamentals to work off of. It also means that if those tools do go out of fashion (as happens in tech all the time) then your core knowledge will allow you to pick up another toolset and work with it due to understanding the fundamentals - you are more flexible.


Because you don't get it now doesn't mean it won't be of any use tommorow.

Your school program wasn't made rolling a dice , people who know what they're talking about chose to include theese maths to the program and that's for a good reason. As a cybersecurity developper in apprenticeship I can tell you I made this mistake too. I focused on programing courses back when I was at the university because I didn't know why I had to learn theese complicated math stuff.

With time to reflect and learn more about IT science I can tell you that you can be a great developper without knowing advanced math but this would be like running on a single leg when you can run with both. you'll have harder time , will be slower , and there's a lot of things you won't be able to do.

For exemple there's a lot of math things to learn about simplifying algorithms. It can look hard at the first look but with a little time and work it's something realy usefull when wrighting programs which treat big amounts of data , etc..

From my point of vue there's no major benefit from non university path , you should go as far as possible in your studies and work as a freelance developper in the background. Best way to learn the theory and the practice.

  • Thank you! I think I'm going to do both the "paths": university and personal study. – Silver978 Mar 16 '17 at 20:14
  • That's the best way to learn. I know a lot of realy great developpers and what they had in common was that they developped programs at home. They started developping for fun , trying to do one or to great projects a year using languages they didn't know yet. The best way to learn is to keep having fun trying but once you're good at it start freelancing , it can make you earn and learn a lot ! – Rolexel Mar 17 '17 at 7:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.