Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Intermediate or Advanced Programmers, Poll


Mal
 Share

Recommended Posts

The poll is for intermediate or advanced programmers only; those who could effectively follow all OOP guidelines using inheritance, interfaces, encapsulation rules, naming conventions (non-Hungarian), etc. This is only for personal information and in no way is this poll to be used as viable statistics that represent the population of professional level programmers in a real-world setting.

I appreciate your honest answers. ![:)](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/smile.png)
Link to comment
Share on other sites

Learned my self. Learned how disasemble code, and learned syntax for java, and visual basic 6 (and .NET) all myself. Sources of other peoples programs and seeing how they did things have taught me well ;}
Link to comment
Share on other sites

> Learned how to do a lot of coding by myself. Didnt learn how to do it properly until college. A lot of people think they are doing things correctly until they learn the real way to do it. (myself included)

Precisely the point of this poll, and I appreciate your honesty. I had NO idea how complex programming actual is in terms of data modeling and implementing proper coding practices until I picked up these books. Even my VB6 certification class back in 2002 wasn't as involved, technical, or complicated as the topics addressed in the books I have now. It's almost impossible to find online tutorials that address the topics that I brought up in the original post; they simply give you a way to do something and do not explain why or how it works, or why it should be done a certain way, or how it could be done in other ways.
Link to comment
Share on other sites

> Im currently in college learning programming/how computers function (binary and assembly are not fun). However before that I learned mainly from online tutorials and self teaching. So many hours of staring at a screen with questions and not having anyone to ask.

That's pretty common and a point I made in one of my posts. You're more likely to have a fuller, much better understanding of things after reading a book or taking a course that is structured rather than digging through tons of useless references to material that no one thoroughly explains. I found binary to be amazingly simple (base 10 math); assembly I've never touched.
Link to comment
Share on other sites

> The binary in itself is simple. However when they make you do countless equations and tell them how it effects certain parts of the hardware its not very fun. Most boring class I have ever taken in my major.

Well, to be able to do equations you obviously have to assign a bit phrase a value, so it's still relatively simple. As far as how bits are translated by the hardware goes, you'd have to know a LOT about the hardware or how bits are processed (EBCDIC or ASCII), because naturally a bit represents 2 values, true or false, that open or closes an electric current. Shit is above my head, but yeah, class sounds like it'd be difficult in that aspect.
Link to comment
Share on other sites

Still not sure if i qualify as intermediate but everything i have learned has been online, Mostly tutorials and watching other people code. I only know vb6 and a bit of html. But i can generally figure my way around any problems i encounter.
Link to comment
Share on other sites

I learned most of my coding by reading tutorials and things online but mainly just playing around with codes and trying things until I figured them out. In College I'm learning more of the best practices and more refined coding techniques but I learned all of the basics and most of what I know from teaching myself.
Link to comment
Share on other sites

There seems to be a lot of confusion going on here as far as what an intermediate and advanced programmer is. Unknown actually alluded to the primary difference, and I'll try to explain it here:

An intermediate programmer has a firm grasp of the syntax of the language they are working with and is able to utilize most components of the language as well as implement existing assemblies (namespaces/libraries) in their code.

An advanced (or senior) programmer has the ability to systematically design, code, and implement practically anything using a wide array of technologies; furthermore, an advanced (or senior) programmer has a very firm understanding of the theories associated with data modeling, systems design, and other attributes of data management.

In the context of theories, I would have to say you're absolutely wrong as far as learning them not being "practical" goes. In a real world environment, a systems analyst and database administrator would work in tow to produce a data model or other design (flowchart, relational data model, etc) that you would need to comply with as a programmer. So yes, theory is most definitely important depending on your job. For instance, a senior developer may assist with the aforementioned things and would need to have a firm understanding of the technologies and theories associated with the organizations needs.

This is what sets an advanced and intermediate programmer apart from an entry level programmer (and an advanced apart from an intermediate): The ability to produce complex, re-usable, versatile applications that are resilient, cost effective, that maintain the utmost integrity (security, resource management, etc) and comply with team and object oriented practices (industry standards). That being said, a good number of people who replied to this topic are, in all actuality and in every sense of the word, entry level programmers. Do not take that as an insult as I appreciate the responses from all of you.

My intention for use of this poll is to determine how to better aid you young fledglings in acquiring the information you need to move forward instead of being stuck in a constant and recursive grind. I'll be starting a series of in depth tutorials, free of charge and in C# 2010, to better aid you guys in your endeavor to fully understand (and hopefully appreciate) programming as a whole. The topics will apply strictly to object-oriented techniques such as class inheritance, overriding and overloading methods, and proper encapsulation (NO PUBLIC FIELDS!).

Once again, thanks for the awesome replies.
Link to comment
Share on other sites

> In the context of theories, I would have to say you're absolutely wrong as far as learning them not being "practical" goes. In a real world environment, a systems analyst and database administrator would work in tow to produce a data model or other design (flowchart, relational data model, etc) that you would need to comply with as a programmer. So yes, theory is most definitely important depending on your job. For instance, a senior developer may assist with the aforementioned things and would need to have a firm understanding of the technologies and theories associated with the organizations needs.

I work in the real world where nobody is concerned about Big O notation, algorithms that are .001% more efficient or writing complex data structures (which is what I learned in college). College trains you to be a researcher, I'm not a researcher. Software architects design code using advanced OOP techniques… In my experience, OOP isn't taught in college it's more of a learned skill from years of experience. It's nice to know the theory behind programming and how to think analytically and that's what you learn in College. That being said, I don't think College trains you for higher level jobs within an organization like 'software architect'.
Link to comment
Share on other sites

> Do you program games? because when it comes to games optimization, complex data structures etc… are normal.

I program games as a hobby.. Gaming is one area that requires some speed optimizations depending on the project. If you're making a 2d game, you probably don't need complex data structures (see every project made in XNA). If you're making a next generation game like Guild Wars 2, then yeah I can see where some complex data structures and nifty algorithms could come in handy.

Most games and software don't push hardware to it's extreme..
Link to comment
Share on other sites

The way I see it is, optimize from start to end because when you finish your project, you'll have room for more. And hell, even XNA games could benefit from complex data structures. However, I guess I'd have to ask, what is considered complex? Linked lists, dynamic arrays, graphs, trees, hash tables? I'm pretty sure I use almost all of those at some point. Lol
Link to comment
Share on other sites

I've used all of those too.

Let me clarify a little bit. Yeah it's useful to use a hashmap/linkedlist/* data structure in XNA or any program/game. It's not useful to implement your own data structure from scratch in C and optimize it to go 1% faster unless you're making a speed critical application. College teaches you how all these data structures work and how to write them, but in the real world you should never have to write them unless absolutely necessary.
Link to comment
Share on other sites

> I work in the real world where nobody is concerned about Big O notation, algorithms that are .001% more efficient or writing complex data structures (which is what I learned in college). College trains you to be a researcher, I'm not a researcher. Software architects design code using advanced OOP techniques… In my experience, OOP isn't taught in college it's more of a learned skill from years of experience. It's nice to know the theory behind programming and how to think analytically and that's what you learn in College. That being said, I don't think College trains you for higher level jobs within an organization like 'software architect'.

Did you stop at an associates or something?
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...