It looks like you're using an Ad Blocker.

Please white-list or disable AboveTopSecret.com in your ad-blocking tool.

Thank you.

 

Some features of ATS will be disabled while you continue to use an ad-blocker.

 

Computer Coding Courses for Men

page: 2
5
<< 1   >>

log in

join
share:

posted on Oct, 30 2018 @ 12:20 AM
link   

originally posted by: Starbuck799
a reply to: Metallicus

Hey brother. I’m an old school AS/400 RPGIV programmer, 25 years in.

I took a C++ course a few years back. My advice would be to not do C++. It’s just a big sell/con job. Not that I couldn’t do it. But Object Oriented programming is not the panacea that it’s made out to be. It’s awkward and way too low level for application programming, unless you’re gonna write operating systems.

Just use C if you don't like the object oriented aspect of C++, but modern C++ isn't so hard to understand once you get the hang of it. Here's the thing, C++ was the last language I learned. I started with scripting languages like VBScript and PascalScript, then moved onto web languages such as JavaScript and PHP, then got into desktop programming languages such as C# and Java. When I finally started learning C and C++ suddenly it all clicked for me, I could see how all these other languages had borrowed paradigms from C and C++ but had abstracted away a lot of the low level stuff that C and C++ provide, trading speed for ease-of-use. This is why if you want maximum speed you code in C or C++, it's why game engines are built with C++.

If you want to write code that exploits the parallel computing power of a GPU then you most likely want to use CUDA or OpenCL, which allow you to write kernel code in a C based language. C/C++ is strictly typed and provides the ability to manage your own memory, so you know exactly what your variables and memory are doing. Yes it requires more effort and a better understanding of what's actually happening behind the scenes, but that gives you a much more solid understanding of what your code is really doing and that understanding extends into other languages. I can read almost any programming language now, I couldn't do that before I was experienced with C and C++ because I didn't have that deeper understanding of how a programming language works.


All how OO programming is just a big show is just starting to come out generally lately, but I knew it all along.

There’s a video on YouTube somewhere where a smart guy talks all about it being a sham. It’s called Why C++ isn’t a good language, or something like that. He does a good job of explaining why it’s a crap language, and why OO is a waste of time. I’ll see if I can find it. But you might be able to find it yourself. There are a ton of YouTube videos out there that explain why OO and C++ are bad.

I have seen that video and it's complete nonsense. Object oriented code has several major advantages over procedural or functional programming, a large one being it allows for intuitive and well organized code. It's certainly isn't suited to all problems, especially not simple problems like shown in that video. Many of my web applications are simple procedural PHP code which just call some functions to create dynamic aspects of the page. However when you start creating software that does more complicated stuff you'll find object oriented code far more practical and will reduce the amount of spaghetti code in a large project by a substantial fraction.

I view classes as a template for the object, which should contain some data and some methods for manipulating the data. If the class only contains methods then it's typically just better to use global functions. But lets say you want to create a simple particle simulation engine with thousands of particles and each particle needs to have a different position, speed, mass, etc. In that case it's probably better to create a particle class with variables to hold information about the particle, and methods to act on the particle. The code will certainly be more elegant and the process of creating and manipulating particles becomes easier to understand.
edit on 30/10/2018 by ChaoticOrder because: (no reason given)




posted on Oct, 30 2018 @ 12:33 AM
link   



posted on Oct, 30 2018 @ 01:30 AM
link   
Here's quite a good video which explains the strengths of object oriented programming by looking at how one might go about coding Pong. One of the main points I think needs to be understood is that code isolation is very important for maintainability and minimizing bugs, and object oriented programming is all about using well defined interfaces to read and manipulate the data members of an object.


In case anyone is actually interested in learning C++ I would suggest these guys on YouTube:

TheChernoProject
ChiliTomatoNoodle
edit on 30/10/2018 by ChaoticOrder because: (no reason given)



posted on Oct, 30 2018 @ 08:43 AM
link   

originally posted by: ChaoticOrder

originally posted by: Starbuck799
a reply to: Metallicus

Hey brother. I’m an old school AS/400 RPGIV programmer, 25 years in.

I took a C++ course a few years back. My advice would be to not do C++. It’s just a big sell/con job. Not that I couldn’t do it. But Object Oriented programming is not the panacea that it’s made out to be. It’s awkward and way too low level for application programming, unless you’re gonna write operating systems.

Just use C if you don't like the object oriented aspect of C++, but modern C++ isn't so hard to understand once you get the hang of it. Here's the thing, C++ was the last language I learned. I started with scripting languages like VBScript and PascalScript, then moved onto web languages such as JavaScript and PHP, then got into desktop programming languages such as C# and Java. When I finally started learning C and C++ suddenly it all clicked for me, I could see how all these other languages had borrowed paradigms from C and C++ but had abstracted away a lot of the low level stuff that C and C++ provide, trading speed for ease-of-use. This is why if you want maximum speed you code in C or C++, it's why game engines are built with C++.

If you want to write code that exploits the parallel computing power of a GPU then you most likely want to use CUDA or OpenCL, which allow you to write kernel code in a C based language. C/C++ is strictly typed and provides the ability to manage your own memory, so you know exactly what your variables and memory are doing. Yes it requires more effort and a better understanding of what's actually happening behind the scenes, but that gives you a much more solid understanding of what your code is really doing and that understanding extends into other languages. I can read almost any programming language now, I couldn't do that before I was experienced with C and C++ because I didn't have that deeper understanding of how a programming language works.


All how OO programming is just a big show is just starting to come out generally lately, but I knew it all along.

There’s a video on YouTube somewhere where a smart guy talks all about it being a sham. It’s called Why C++ isn’t a good language, or something like that. He does a good job of explaining why it’s a crap language, and why OO is a waste of time. I’ll see if I can find it. But you might be able to find it yourself. There are a ton of YouTube videos out there that explain why OO and C++ are bad.

I have seen that video and it's complete nonsense. Object oriented code has several major advantages over procedural or functional programming, a large one being it allows for intuitive and well organized code. It's certainly isn't suited to all problems, especially not simple problems like shown in that video. Many of my web applications are simple procedural PHP code which just call some functions to create dynamic aspects of the page. However when you start creating software that does more complicated stuff you'll find object oriented code far more practical and will reduce the amount of spaghetti code in a large project by a substantial fraction.

I view classes as a template for the object, which should contain some data and some methods for manipulating the data. If the class only contains methods then it's typically just better to use global functions. But lets say you want to create a simple particle simulation engine with thousands of particles and each particle needs to have a different position, speed, mass, etc. In that case it's probably better to create a particle class with variables to hold information about the particle, and methods to act on the particle. The code will certainly be more elegant and the process of creating and manipulating particles becomes easier to understand.


Well you certainly make a good case for OO programing. But 80% of programming jobs out there are for application development, (by that I mean, banks, insurance companies, retail, manufacturing, inventory, and other straight forward business applications.) OO is good for other but small market jobs like operating systems, gaming, and scientific programming. OO is just way too involved and time wasting for general business applications. Business application development needs to be fast, readable, and high level. Procedural programming meets this need best. There is no need to know what is going on at the lower lever in those types of environments. In fact it is a hindrance to rapid application development.

As to your particle example, that can easily be achieved through the use of Multiple Occurring Data Structures, which is in just about every procedural language. That type of thing is almost never needed in the business world, but is available for the limited times when it does comes up.

Spaghetti code, and intuitive and well organized code, has nothing at all to do with what language is being used. That is all on the programmer, and the use of, (or not use of), correct programing techniques.
edit on 30-10-2018 by Starbuck799 because: (no reason given)



posted on Oct, 30 2018 @ 11:18 AM
link   
a reply to: Starbuck799


OO is just way too involved and time wasting for general business applications. Business application development needs to be fast, readable, and high level. Procedural programming meets this need best.

OO code actually makes development faster imo, a class is basically just a structure with some functions attached to it. Also, you're abstracting away a lot of the complex functionality into objects which are controlled via their simpler methods, resulting in code which is more readable and more maintainable. Your variables aren't exposed and flopping all over the place, your data and functions are neatly packaged into classes with the necessary scoping and access restrictions to ensure the data isn't being read or written incorrectly. This is very important for enterprise software and many business applications where it's important to minimize bugs and maximize maintainability. The vast majority of jobs at places like Google will want code written that way.


Spaghetti code, and intuitive and well organized code, has nothing at all to do with what language is being used.

If you try to write any large or complex program without OO code you will most likely produce a lot of highly entangled spaghetti code where it's very unclear what the program flow is because it lacks code isolation and the organization provided by OO. I know this because it's the type of code I wrote before I really understood the OO paradigm and why it was so powerful. In languages like C where you don't have classes it's obviously still possible to write readable and well organized code but I often find myself wishing I could create an object to make my code cleaner. In my experience people who don't see the point of OO code don't understand it properly and think it's scary. In reality classes actually make writing code easier rather than harder imo.
edit on 30/10/2018 by ChaoticOrder because: (no reason given)



posted on Oct, 30 2018 @ 12:13 PM
link   
I’m literally downloading Stata as i write. Used that a ton for advanced stats analysis. Been working on SQL for a few years now, which is super practical. But there isn’t much online ed for it beyond beginner level.

Next up is R and Python, which I’m taking intro classes in December.

Code academy, coursera, edx, etc, have some free courses for various data science things.

Ugh, I looked at doing a formal in person python and sql course at Flatiron school and tuition is effing $15000
a reply to: Metallicus


edit on 30-10-2018 by Quetzalcoatl14 because: (no reason given)



posted on Oct, 30 2018 @ 03:31 PM
link   

originally posted by: ChaoticOrder
When I finally started learning C and C++ suddenly it all clicked for me, I could see how all these other languages had borrowed paradigms from C and C++ but had abstracted away a lot of the low level stuff that C and C++ provide, trading speed for ease-of-use. This is why if you want maximum speed you code in C or C++, it's why game engines are built with C++.

The thing I don't like in C++ is that I find it too complex for simple tasks but not as fast as assembly, so when I was first learning programming if I wanted speed and a small footprint I used assembly, if I wanted ease-of-use I used BASIC or Pascal.


However when you start creating software that does more complicated stuff you'll find object oriented code far more practical and will reduce the amount of spaghetti code in a large project by a substantial fraction.

Object oriented code has its use, but I think people presented it at first as if it was the best thing ever done and everything should be done that way. It's a tool, so in some cases it's the best option, in other cases it's not.



posted on Oct, 30 2018 @ 03:56 PM
link   

originally posted by: Starbuck799
Well you certainly make a good case for OO programing. But 80% of programming jobs out there are for application development, (by that I mean, banks, insurance companies, retail, manufacturing, inventory, and other straight forward business applications.) OO is good for other but small market jobs like operating systems, gaming, and scientific programming. OO is just way too involved and time wasting for general business applications. Business application development needs to be fast, readable, and high level. Procedural programming meets this need best. There is no need to know what is going on at the lower lever in those types of environments. In fact it is a hindrance to rapid application development.

I work for a company that (besides other things) makes software, and our most recent program is an invoicing program, for which we have dozens of clients. Having an object representing a document with another object representing an invoice line makes it easier to work with several different types of documents (invoices, credit and debit notes, shipping documents, etc.) and to create new types of documents. It also makes it easier for the user to "drill-down" from the document to a specific item of a line in a document.

We probably don't use it exactly as we should in an object-oriented way, but the idea is the same and it helps to make a program that is easier to evolve or convert.



posted on Oct, 31 2018 @ 12:40 AM
link   
a reply to: ArMaP


The thing I don't like in C++ is that I find it too complex for simple tasks but not as fast as assembly, so when I was first learning programming if I wanted speed and a small footprint I used assembly, if I wanted ease-of-use I used BASIC or Pascal.

Well I wouldn't try to write a program in assembly because it's even lower level than C and harder to write even simple code imo. That's the entire point of higher level languages which compile into assembly. Modern C/C++ compilers are very effective at optimization and creating efficient assembly code anyway. Object Pascal / Delphi is a nice language and one that helped teach me a great deal about object oriented coding, but from my perspective it's not really much easier to use than C++, it just doesn't have quite as many features and uses more human-friendly keywords like begin and end instead of curly braces. If I want to truly create an app with minimal effort I'll probably use a .NET language like C# or Visual Basic, just because there are so many functions already available, whereas with C++ you often have to create functions yourself or find a library for it. As I said before though, it has gotten much better with more modern versions of C++, especially since C++11 we now have things like native thread support (std::thread, std::atomic), a standard time library (std::chrono), smart pointers, lambda expressions, auto type declaration, and more.



posted on Oct, 31 2018 @ 12:53 AM
link   
a reply to: Metallicus

How about learning some French and Spanish,maybe a little Japanese then go travel the world ?



posted on Oct, 31 2018 @ 08:40 AM
link   

originally posted by: ChaoticOrder
Well I wouldn't try to write a program in assembly because it's even lower level than C and harder to write even simple code imo.

It is, but the final result is the fastest and smaller program possible. Many years ago there was a drawing program (later bought by Corel, if I'm not mistaken) that had some processing routines written in assembly, and it was much faster than the other programs.




top topics



 
5
<< 1   >>

log in

join