• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Aspiring Computer Programmer

Karchii Oawaa

Oldschool Player
Joined
Sep 6, 2010
Messages
1,274
Reaction score
125
I'm 17 years of age, currently doing my A-Levels.. and I've always wanted to be a computer programmer. I took Computing on my last year of high school and got an A* also, I also got an A on my GCSE maths exam. For my A-Levels I am taking.. Maths, Further Maths, Economics and Geography. Also, I hate Science, only got a C for it.. will that affect me?

Any advice on what to learn? There are so many programming languages such as C#, C++, Java, Python and so on. Willing to put the effort in to learn any as long as possible if it will help me in the long run!
 
In my humble opinion firstly you have to learn Python. This language will show you how programming works: variables, functions, classes and objects. It also contains a lot of other features - for example: decorators, yield, lambda. Anyway, you can learn Ruby instead of it. Ruby is similar to Python and it helps you with introduce with programming.

After it, when you will be god of Python or Ruby, you have to learn C++ (it's basement for programmer). The new version of C++ (C++11) contains also new features (not all) from Python/Ruby (for example lambda functions). Older versions of C++ are easy to transfer from one architecture to another.

At last, you can learn C#. I think you don't need to learn Java. In my honest opinion Java is only used because it is cross-platform and contains some good libraries. Anyway, you can use C++ and include some libraries and it's similar to it. Also C# is available for Linux (mono environment).

Sorry for my language, I have to practice more to be better in English.
 
It depends on what you exactly wanna do;

- Develop cross-platform applications (iOS, Android, OS X, Linux, Windows, ...) go for C, C++ (that's if you're looking for performance, read down a little more)
- Develop single platform applications that hardly (or never) work on other platforms but get-the-job-done-quickly, then you'd go for C#
- Develop small applications that are cross-platform (and get-the-job-done-quickly), go for Ruby/Python.
- Develop cross-platform applications that work out-of-the-box but maybe slow (runtime) also get-the-job-done-quickly, go for Java.
- Develop web stuff, go for Python, CSS etc.

Note:
- I would never recommend learning python/ruby/lua/etc... as a first language, but as side-knowledge
- If you decide to learn C/C++ then I'd recommend learning Assembly right after, this will help you know what's happening behind the scenes.
- If you want to develop games, then you should go for C/C++ straight away, since they're low-level, thus, helping improve performance a lot.
- C/C++ can also help you get the job done quickly if you decide to use libraries. e.g., if doing a graphical application (use Qt, wxWidgets, etc.)

I'll edit this post if I remember more stuff.
 
Last edited:
Thanks to everyone for the advice, appreciate it, also has anyone here have any thought of doing a computer science/computing degree?
 
Thanks to everyone for the advice, appreciate it, also has anyone here have any thought of doing a computer science/computing degree?

I'm currently on a path (near the end) to getting my computer science degree. While it is nice to have a little piece of paper, I'm sure multiple businesses would hire people without a degree, obviously if shown high levels of skill.
Although, I do not wish to take this path, in my opinion it's better to get a valuable resume backed with college education proof.

Anyways, I walked into college pursuing a computer science degree with absolutely minimal programming background (only knew a little bit of Lua, that's it). Now I'm near graduation with a very solid knowledge of C++, C#, and Java.
Fallen basically explained what the recommended learning should be as it is exactly the same path I did in college. Starter language? Definitely C++. This will give you a thorough understanding of how programming works and what the basic terminologies are; this will also allow you to learn other languages much easier. I took Assembly programming (Motorola 68000) midway through my college career, the class not only talks about assembly programming, it also talks about how computers work (this is very important to know).
 
My peronal opinion is that native programming for example C++ and other such languages will "dissapear" if you can call it like that in near future, or will be just used less. All we need for them to fade away is minimum internet speeds of 100 mbit and moving out to cloud :) While still clouds will be developed in C++ , Games and other apps but much much much less then they are now :) Read few articles around the internet they will give you honest and most in depth reviews or reccomendations of programing languages :) I might be wrong don't flame me this is my personal thought and last time i checked I can say and think for myself whatever I desire as long as it first the rules and is socially acceptable!
 
My peronal opinion is that native programming for example C++ and other such languages will "dissapear" if you can call it like that in near future, or will be just used less. All we need for them to fade away is minimum internet speeds of 100 mbit and moving out to cloud :) While still clouds will be developed in C++ , Games and other apps but much much much less then they are now :) Read few articles around the internet they will give you honest and most in depth reviews or reccomendations of programing languages :) I might be wrong don't flame me this is my personal thought and last time i checked I can say and think for myself whatever I desire as long as it first the rules and is socially acceptable!
Probably right.
 
I'm currently on a path (near the end) to getting my computer science degree. While it is nice to have a little piece of paper, I'm sure multiple businesses would hire people without a degree, obviously if shown high levels of skill.
Although, I do not wish to take this path, in my opinion it's better to get a valuable resume backed with college education proof.

Anyways, I walked into college pursuing a computer science degree with absolutely minimal programming background (only knew a little bit of Lua, that's it). Now I'm near graduation with a very solid knowledge of C++, C#, and Java.
Fallen basically explained what the recommended learning should be as it is exactly the same path I did in college. Starter language? Definitely C++. This will give you a thorough understanding of how programming works and what the basic terminologies are; this will also allow you to learn other languages much easier. I took Assembly programming (Motorola 68000) midway through my college career, the class not only talks about assembly programming, it also talks about how computers work (this is very important to know).

Interesting.. so it was well worthwhile. How hard is the course? And also, do you know the differences between a computer science degree and a computing? I am looking to go into one of the top university's in England called Imperial.. they teach Computing but I have previously been recommended it quite a lot.
 
Which course?

I know nothing about the Computing degree as I am not from the UK, it doesn't sound like a degree that would exist in the US unless if it was named differently, but it sounds like a basic degree in knowing how to use the computer properly in many different areas, such as business, film, education, ect. Anyways, computer science is the real deal for development within the computer system. Computer science is everything that deals with programming, algorithms/data structures, principles of computer hardware, artificial intelligence, computer graphics/vision, compiling and operating systems.

Software engineering is different from computer science in a lot of ways. Software engineering is about planning the development of a software and maintaining it reliably and efficiently. Software engineers have basic understanding of programming and computer science theories, they rarely do any programming. Their main roles are creating documents, problem modeling, analysis, software design, software verification/validation, software quality, processes and management. They are basically the managers of the project. They are the ones that set the blueprint for programmers.
 
Which course?

I know nothing about the Computing degree as I am not from the UK, it doesn't sound like a degree that would exist in the US unless if it was named differently, but it sounds like a basic degree in knowing how to use the computer properly in many different areas, such as business, film, education, ect. Anyways, computer science is the real deal for development within the computer system. Computer science is everything that deals with programming, algorithms/data structures, principles of computer hardware, artificial intelligence, computer graphics/vision, compiling and operating systems.

Software engineering is different from computer science in a lot of ways. Software engineering is about planning the development of a software and maintaining it reliably and efficiently. Software engineers have basic understanding of programming and computer science theories, they rarely do any programming. Their main roles are creating documents, problem modeling, analysis, software design, software verification/validation, software quality, processes and management. They are basically the managers of the project. They are the ones that set the blueprint for programmers.

The computer science course?
 
Oh, I guess course in the UK means the whole entire programme of studies (just looked it up). At least here in the US, course means just 1 class, which is why I questioned which course (class).
Anyways, it's not hard if you pay attention. I can give you a list of things that were somewhat hard at first for me and a lot other people.
  • Pointers (in C++)
  • Polynomial time complexity (Big-O notation)
  • Some of the discrete structures mathematics
    • Un/Deterministic Pushdown Automata
    • Writing proofs (pumping lemma, np-complete, undecideability in turing machines)
  • Lisp (God I fucking hate Lisp)
Pointers and Big-O notations were most likely at the fault of professors. Considering you're going to Imperial, I would assume you should be fine.
The other two; discrete math is easy if you pay attention, but towards the end when we get into writing proofs, everyone just went "fuck it".
Lisp is so fucking useless (it has some very important uses in artificial intelligence though)
 
Oh, I guess course in the UK means the whole entire programme of studies (just looked it up). At least here in the US, course means just 1 class, which is why I questioned which course (class).
Anyways, it's not hard if you pay attention. I can give you a list of things that were somewhat hard at first for me and a lot other people.
  • Pointers (in C++)
  • Polynomial time complexity (Big-O notation)
  • Some of the discrete structures mathematics
    • Un/Deterministic Pushdown Automata
    • Writing proofs (pumping lemma, np-complete, undecideability in turing machines)
  • Lisp (God I fucking hate Lisp)
Pointers and Big-O notations were most likely at the fault of professors. Considering you're going to Imperial, I would assume you should be fine.
The other two; discrete math is easy if you pay attention, but towards the end when we get into writing proofs, everyone just went "fuck it".
Lisp is so fucking useless (it has some very important uses in artificial intelligence though)

Good news, I guess.. I thought it would of been extremely hard. Thanks for the heads up.

Also, are there a lot of jobs surrounding computer science? I personally heard its a good market and there are many jobs available.
 
Oh yeah, in the tech industry, definitely easy to find a job.
 
I'm currently on a path (near the end) to getting my computer science degree. While it is nice to have a little piece of paper, I'm sure multiple businesses would hire people without a degree, obviously if shown high levels of skill.
Although, I do not wish to take this path, in my opinion it's better to get a valuable resume backed with college education proof.

:D
 
Honestly the first language you pick should be based around your first project. (What fallen said basically)
But in my opinion you should start with something heavily object-oriented and strongly typed so you understand what a strict programming environment is like. For that you should start with either C++ or Java.
If you don't have any project in mind and are just wanting to get into programming as an education path I would recommend you take a step back and think about all the failures in your life and then go cry in the corner (joking obviously). But that being said, you should start outside of school or you will be well behind some of your classmates. My recommendation for a good starter project would be to make some kind of card game like blackjack or whatever you guys like to play in the UK (a card game will help reinforce object-oriented concepts). Maybe just text-based at first until you start diving into UI libraries.
 
Honestly the first language you pick should be based around your first project. (What fallen said basically)
But in my opinion you should start with something heavily object-oriented and strongly typed so you understand what a strict programming environment is like. For that you should start with either C++ or Java.
If you don't have any project in mind and are just wanting to get into programming as an education path I would recommend you take a step back and think about all the failures in your life and then go cry in the corner (joking obviously). But that being said, you should start outside of school or you will be well behind some of your classmates. My recommendation for a good starter project would be to make some kind of card game like blackjack or whatever you guys like to play in the UK (a card game will help reinforce object-oriented concepts). Maybe just text-based at first until you start diving into UI libraries.


Thanks.. how should I start learning C++? Also where?
 
Well I don't know your current skill level but if it's absolutely zero then you will need to learn the mega-basics first which you can learn from pretty much anything..
The best way? It's gonna sound obvious but buy a book... They are the best way. Get a book on C at first to learn the basics.
You can always pirate the books if you don't wanna pay for them but c'mon you're better than that.

Like fallen said, its never recommended to learn a scripting language first but if you're mega lazy there are some free sites that will actually "teach" them to you such as www.codeacademy.com
The Ruby tutorial they have on there would get you on the right track but as soon as you finish it you should immediately jump over to C/C++.
 
I recommend you to learn c++, maybe at first is a bit strange or difficult, but when you get a certain level, later you can learn others languages without some muchs problems, and maybe the facilities that give you the high levels languages could be a disadvantage at the end, if you want to know languages like c++ or maybe java, because with a pair of lines you can do great things and then if you have to learn a low level language it will be difficult to you. all IMO.

sorry my english and the structure of the text. IM SO TIRED.
 
From my own experience you should start learning C and then C++. After that you can go for C# or Java. I have just finished this year my degree in computer science and i got a very solid formation on C, C++, Java and C++ and some PHP.
 
Back
Top