• Forum
  • Lounge
  • What are the biggest mistakes self taugh

What are the biggest mistakes self taught programmers make?

Pages: 12
I will have to attend some kind of interview to get into uni; so in order to avoid being tricked into doing an unnecessary foundation year i will have to chat to the course director, i will tell him im self taught to a certain point and show him my work.

He will most likely judge my ability to learn over my experience,as they teach you everything as if you didn't already know it anyway.
so i was kind of wondering what bad practice self taught programmers commonly continue with for many years
Last edited on
Honestly, I believe it's best if you supply code for a program with no more than 200 lines to us and let us critique you. You'd be surprised at the kinds of things that have become known as bad practices when the entire time you thought it was good.

Obviously a small program like this isn't going to reveal everything, but at the same time, you will be showing us a good portion of your preferences, naming schemes, etc.

Some of the biggest bad practices are just doing things that aren't quite standard, getting lazy because it's easier and forgetting how to do it the proper way, bad naming of variables, globals, too much whitespace, too little whiespace, poor indentation, inconsistent indentation, inconsistent whitespacing, etc.

To combat the last 5, I use AStyle and it works wonders, especially when copying other's code.
so in order to avoid being tricked into doing an unnecessary foundation year

Hubris is a pretty common problem amongst self-taught programmers.
I find almost the opposite to be true. But then again, I don't know many in the real world. But most of the users here seem pretty humble. But, then again, maybe you guys just drove away the arrogant ones.
A bad habit in general is that people who continue to work in a language do not keep following the updates to the language and its design patterns. The result is professors that teach you C++ using stack-allocated character arrays for strings.
Global variables, no modularity/orthogonality, repeated or redundant code, no error checking or exception handling, bad naming conventions, use of numeric constants.

Last edited on
@iseeplusplus I thought that most self-taught C++ programmers had access to the internet?
Kay i will submit code i am working on,ideal cos i am working on just the thing ;)

i wasn't being hubristic the foundation really is unnecessary, its a way to make money, i would be re-learning electronics and mathematics two things i only need to brush up on.

what could i demonstrate to impress them also
closed account (zb0S216C)
devonrevenge wrote:
"What are the biggest mistakes self taught programmers make?"

I find that self-taught programmers are not made aware of the consequences of some programming practices until they are either a: informed of the consequences or b: made aware of the consequences through research and testing.

On the flip-side, programmers that are taught in schools are also prone to errors due to their teacher displaying poor programming practice. The only difference between self-taught and school-educated is that self-taught programmers don't have experienced developers guiding them.

devonrevenge wrote:
"what could i demonstrate to impress them also"

Since you're applying for a university course, I would suggest something in regards to multi-threading; maybe a simple thread-safe wrapper for an array.

Also, you might want to brush up on your English before applying for anything. I'm not being evil, but if the university teacher sees your written (and possibly spoken) English he/she won't offer you a seat in their classroom.

oh lo yes you are right, im looking into it know as you know, this might take a little while as im still at war with linker settings, even including headers is my greatest weakness
im still at war with linker settings, even including headers is my greatest weakness

Oh my...
come on your proly on linux, i have to put some .dll somewhere then tell someone i included the header in some box thing somwere but theres millions of box things that are all fine about me saying 'oh yeah -lheader' seriously whoever created code blocks linker settings didnt want it to be easy to explain
Actually, I use C::B on Windows XP...I've dealt with the linker and it's really simple. Besides, what you're facing isn't the C::B linker, it's the compiler, I'm assuming g++, linker that you're fighting with. Also, why are you using DLL's? Unless you're using a toolkit or some boost features, you should just be using header files, not DLL's.
what!? sos i just include them like normal header files that i made?
still i wish i understood more about installing libraries and apis on all compilers and computer systems, this is the first case i have had that has genuinley made me want to move on to linux

i managed sdl but only cos there were spoonfeeding instalation guides
Last edited on
Volatile Pulse wrote:
the C::B linker

No such thing. You're talking about mingw-ld.
Last edited on
No, you don't "include" DLL's. They need to be linked, properly. If you're just using the DLL in the current project, edit that project's Build Options... From there, you can modify the search directories, places that might include the .dll, .h, or other .cpp files that you need to properly compile. Once you add the directory of your .dll, you move over to the linker settings and type -lfilename without the .dll, if I remember correctly. The only time you don't need to change the search directories is in the case of an absolute filepath in the linker, or if the .dll is in the active directory. I can't remember exactly how to link with absolute file names, but it's slightly different. You can google g++ linker settings and it will give you all of the information you need.

Note: It isn't any different on *NIX systems since g++ is pretty standard from OS to OS. Meaning, you'd be going through the exact same process.

chrisname wrote:
No such thing. You're talking about mingw-ld.

I know this...that's why I said it's the g++ linker, I was just making sure he was following. C::B doesn't have a linker, compiler, debugger, etc. It's purely notepad with syntax highlighting and the ability to send commands to compilers and debuggers.

You also took that out of context to make it look like I didn't know what I was talking about. C::B "linker" is just the settings to make it easier to link the files you need to. That's why it's called linker settings.
Last edited on
There's no need to make it sound like I had malicious intent when I quoted you. I just pointed out what I thought was a mistake. Now I know it wasn't a mistake, just poor wording. That was all you had to say... no need to go on about how I'm trying to make you look stupid.
Sorry, I've been on end lately. I don't mind being called out on things I'm wrong about, and I actually prefer it. How else is anyone going to learn if you don't correct them?

But yes, I do know a little something something about C::B.

Edit: Just living up to my name. :D
Last edited on
The biggest sin of self-taught programmers is usually lack of deeper theoretical knowledge. They know solutions to some common problems, e.g. they may know that to sort data you need to call std::sort, but they might not be able to solve some harder problems they can't find ready solutions for on the Internet. So, e.g. they may end up using std::sort to sort 50 GB of data and then complain on the forums why it is so slow. Or they might be able to create a social network site with some features like facebook, albeit it will die of performance problems after exceeding first 10000 active users or someone will hijack and crack their password database secured by a home-made hash function.

The sad part is, this feature is common to many graduate programmers, too.
Last edited on
closed account (o1vk4iN6)
Isn't that exactly what happened to facebook ? But look at her now, look at her now...
Pages: 12