Computer Science Topic list needed and help needed! Please read.

Watch
ThisGuy_Mario
Badges: 1
Rep:
?
#1
Report Thread starter 6 years ago
#1
I've been programming for a year now or so, from Python 3.4 to c# and java then now resting on C++. I learn really fast, so I'm quite advanced.

I was wondering does anybody have a list of topics I should/need to learn to improve my computer science knowledge to help in programming. Such as learning lambda expressions, delegates, events, polymorphism, Big O notation e.g. (btw I know the things previously said).


-Side question, does anyone know a free compiler to program in C++ - as my Visual studio subscription has ran out.

Thanks
0
reply
Jooooshy
Badges: 17
Rep:
?
#2
Report 6 years ago
#2
(Original post by ThisGuy_Mario)
I've been programming for a year now or so, from Python 3.4 to c# and java then now resting on C++. I learn really fast, so I'm quite advanced.

I was wondering does anybody have a list of topics I should/need to learn to improve my computer science knowledge to help in programming. Such as learning lambda expressions, delegates, events, polymorphism, Big O notation e.g. (btw I know the things previously said).
I'd probably learn some networks/operating systems/architecture/compilers. Learning some software engineering principles also wouldn't hurt. Are you familiar with design patterns? Are you familiar with concurrent programming? All of the preceding topics should keep you occupied for a while..

You may also enjoy studying algorithms and solving problems on SPOJ/Topcoder etc.

Maybe learn a functional programming language, such as Haskell/Erlang/OCaml.

-Side question, does anyone know a free compiler to program in C++ - as my Visual studio subscription has ran out.
A free compiler? gcc.
1
reply
Async
Badges: 19
Rep:
?
#3
Report 6 years ago
#3
Visual Studio is free, get the express edition. Or I can get you a free Visual Studio 2013 key for free, I am registered with DreamSpark so I get them free as part of my college whatnot. And 1 year and you're moving on so fast? You might want to take it slow there buddy, stick with learning one thoroughly before moving. For C#, learn OOP, Regex, Databases, Linq, learn about JSON, the use of Client side programming, e.g REST API's and whatnot.

May I see a sample of one of the programs you have written for C#? Maybe a post on pastebin with C# Syntax highlighting would be nice. I could suggest you ways to improve since you want to improve.
1
reply
ThisGuy_Mario
Badges: 1
Rep:
?
#4
Report Thread starter 6 years ago
#4
(Original post by Async)
Visual Studio is free, get the express edition. Or I can get you a free Visual Studio 2013 key for free, I am registered with DreamSpark so I get them free as part of my college whatnot. And 1 year and you're moving on so fast? You might want to take it slow there buddy, stick with learning one thoroughly before moving. For C#, learn OOP, Regex, Databases, Linq, learn about JSON, the use of Client side programming, e.g REST API's and whatnot.

May I see a sample of one of the programs you have written for C#? Maybe a post on pastebin with C# Syntax highlighting would be nice. I could suggest you ways to improve since you want to improve.

A free Visual Studio 2013 key would be greatly appreciated, thanks.

I learn C# not for use and the syntax, just to learn about computer science it self, now I just use C++ for everything so I don't really use C#. I can't find some old stuff but I would of loved the criticism.

And thanks for the help.
0
reply
ThisGuy_Mario
Badges: 1
Rep:
?
#5
Report Thread starter 6 years ago
#5
(Original post by Jooooshy)
I'd probably learn some networks/operating systems/architecture/compilers. Learning some software engineering principles also wouldn't hurt. Are you familiar with design patterns? Are you familiar with concurrent programming? All of the preceding topics should keep you occupied for a while..

You may also enjoy studying algorithms and solving problems on SPOJ/Topcoder etc.

Maybe learn a functional programming language, such as Haskell/Erlang/OCaml.
Thanks for the help, a list is being compiled now with that included.
0
reply
Async
Badges: 19
Rep:
?
#6
Report 6 years ago
#6
(Original post by ThisGuy_Mario)
A free Visual Studio 2013 key would be greatly appreciated, thanks.

I learn C# not for use and the syntax, just to learn about computer science it self, now I just use C++ for everything so I don't really use C#. I can't find some old stuff but I would of loved the criticism.

And thanks for the help.
Which version would you like it for? Which do you have installed?
0
reply
elohssa
Badges: 3
Rep:
?
#7
Report 6 years ago
#7
Computer Science is so vast, there's so many branches of it, learning all of which in detail is impossible. One thing useful for any language is your data-structures + algorithms. Make sure you know how vectors, hash-sets, sorted sets etc. work. Learn about the sorting algorithms commonly used (learning about the bad ones is also handy).

As you're learning c++, you should dwell into implementing your own containers etc. Start with something simple like a scoped pointer, then move onto reference counted pointers, vectors and sets (then learn about thread safety and re-write them ). Learn how the CPU works and what things effect performance e.g. what kind of code is likely to lead to branch miss-predictions or heavy cache misses. c++ is a great language to learn that stuff with.

Lastly, try to learn how compilers work internally (c++ in particular). What exactly is a function call on a lower level? Why do templates need to be implemented in a header? A dynamic_cast may seem like magic but it isn't, there's a lot going on there (think about efficiency). Make sure you know about inline functions and how they differ to normal functions.
2
reply
Erestyn
Badges: 0
Rep:
?
#8
Report 6 years ago
#8
I have to agree with Async. No offence, man, but I find it very hard to believe you have mastered three languages in < 12 months after starting (presumably) from scratch. Fast learner or not, that seems superhuman.

Total fluency and command over one language > general knowledge of 4.
0
reply
ThisGuy_Mario
Badges: 1
Rep:
?
#9
Report Thread starter 6 years ago
#9
(Original post by Erestyn)
I have to agree with Async. No offence, man, but I find it very hard to believe you have mastered three languages in < 12 months after starting (presumably) from scratch. Fast learner or not, that seems superhuman.

Total fluency and command over one language > general knowledge of 4.
I explained it to Async before, i haven't "mastered" them i just know them quite a lot. And I only used some of the early languages, like python and java, to learn and understand rules, concepts, ideas, how computers work, the difference between languages, best ones for what i do and others..... i agree i am not fluent and perfect in all the languages, but i only used the early languages (like python, java...) to learn and get introduced into programming and computer science - not to learn the syntax of them, there purpose of them and becoming "professional" in them.

Sorry for the confusion.
1
reply
Erestyn
Badges: 0
Rep:
?
#10
Report 6 years ago
#10
Ah, sorry I completely misunderstood what you were saying. So you're learning their function and how they interact. In which case, I'm very sorry if I came across as confrontational!
0
reply
X

Quick Reply

Attached files
Write a reply...
Reply
new posts
Back
to top
Latest
My Feed

See more of what you like on
The Student Room

You can personalise what you see on TSR. Tell us a little about yourself to get started.

Personalise

Do you think mandatory Relationships and Sex Education in secondary schools is a good idea?

Yes (338)
83.66%
No (66)
16.34%

Watched Threads

View All