Good with OOP, nothing else

danhodge

In Runtime
Messages
324
Location
UK
Hey guys! Its been bloody ages, but i'm the guy whose *** you've saved multiple times in the past few years. And now i'm going to uni to do computer science in a couple of weeks :D

Now, I've been programming for a while now, but i've never really done anything other than object orientated programming (Unity3d c# mainly, little bit of visual studio quite a while back), and I feel like i'm fairly good at that now, but university will cover everything, and, embarrassingly, i don't know what that even means. I'm also a bit worried i've gotten into habits with OOP that I will need to break.

I gave it a good Googling, and found mentions of functional and structural, but the terminology used to explain them completely lost me, so is there any way someone can tell me what the alternatives to OOP are, and how they differ from it? It would be even better if it could be explained in terms of C# (if that even makes a difference, i have literally no idea about this).

I'm starting to get the feeling that teaching yourself to program ends up with you missing some of the important base knowledge :silly:

Thanks,
Danny
 
Hey guys! Its been bloody ages, but i'm the guy whose *** you've saved multiple times in the past few years. And now i'm going to uni to do computer science in a couple of weeks :D

Now, I've been programming for a while now, but i've never really done anything other than object orientated programming (Unity3d c# mainly, little bit of visual studio quite a while back), and I feel like i'm fairly good at that now, but university will cover everything, and, embarrassingly, i don't know what that even means. I'm also a bit worried i've gotten into habits with OOP that I will need to break.

Nooo, dont' break OOP habits! OOP habits can still apply to other language types; you'll just have to adjust to the syntax/stucture of those langauges.

Honestly, it's going to start out with the basics. Since you're already experienced in programming, the beginning of the courses should be very easy for you, besides learning the new syntax of whatever language they choose (probably either Java, C, or C++ - those are usually the most common starter languages in CS).

I gave it a good Googling, and found mentions of functional and structural, but the terminology used to explain them completely lost me, so is there any way someone can tell me what the alternatives to OOP are, and how they differ from it? It would be even better if it could be explained in terms of C# (if that even makes a difference, i have literally no idea about this).
C# is an "impure" functional language.

Structural programming is just a paradigm, which pretty much every modern languages follows nowadays - usage of loops, functions (methods in C#), etc. Non-structural is more like Assembly, which uses jumps / goto's (see definition below)

Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making extensive use of subroutines, block structures and for and while loops—in contrast to using simple tests and jumps such as the goto statement which could lead to "spaghetti code ...

There's much more than just OOP / functional though: https://en.wikipedia.org/wiki/List_of_programming_languages_by_type

I'm starting to get the feeling that teaching yourself to program ends up with you missing some of the important base knowledge :silly:

Thanks,
Danny

Don't worry, that's where the courses will start - that's the point of 100 level courses: to teach the basics before going into more advanced topics.
 
Oh okay, I think I had been looking at this the wrong way, I thought the group depended on how you used it (like OOP being used in game development software for example).

So a language can come under more than one group, instead of being a one or the other kind of thing? I'm seeing C# and C++ coming up a lot here...

Thanks for the response :D
 
Just an FYI, I started out in CS without knowing anything programming related besides some reaaalllly basic HTML. We started with C++, and then in later courses were allowed to switch to whatever language we wanted - so I switched to C# because I wanted to learn it.

C++ is a hybrid language between old C-style procedural-based (non-OOP) and OOP. It can be used as either type, where as C# is an OOP language (as with Java).

A good programmer should be able to pick up most any language - it's just a matter of learning syntax. Logic / patterns should be able to apply across multiple languages so it makes learning extra languages easier.

For example, I knew C++ and C#, some MySQL, some basic HTML/CSS, and some PHP coming into the job I have now as a Software Engineer. Now, I do C#, some VB.NET, HTML, JavaScript, CSS, Razor/MVC (with C#), T-SQL (with SQL Server), pretty much daily at work.
 
Back
Top Bottom