Jump to content

What level of programmer are you?


ober

Recommended Posts

y'know, you put it better than i did but i feel the same. i'm comfortable not knowing the whole language thing - just as long as my logic/problem solving skills are involved, i'll always find a way.

from a recruitment point of view, that's a damn good answer too in an interview. interviewers absolutely HATE those that say "oh yeah, i'm 5 out of 5 and i'm the best for the job"
Link to comment
Share on other sites

  • Replies 57
  • Created
  • Last Reply

Top Posters In This Topic

[quote author=obsidian link=topic=123688.msg514272#msg514272 date=1169842536]

[i]It's really hard to answer that, because what's the definition of a good coder? Is it someone that can figure out a way to solve a problem or the person that knows the manual forward and backward? Based on my lack of training, I'd have to say that my actual [b]knowledge[/b] of the subject is lacking, therefore, I'd probably give myself a 3; however, if we're talking about the ability to solve problems, I'd probably have to bump it up a notch because when I'm given a problem, I'll figure out a way to get it done. It may not be the prettiest solution in the world, but I won't give up until I have something that works.[/i]
[/quote]

It is easy to figure out problems, "getting it to work" is never the best solution. I find beginners tend to want stuff to just work. There are two types of problem solving

1. the right way
2. hacking away at the keyboard until it works <-- beginner way
Link to comment
Share on other sites

[quote author=Nameless12 link=topic=123688.msg514519#msg514519 date=1169862784]
It is easy to figure out problems, "getting it to work" is never the best solution. I find beginners tend to want stuff to just work. There are two types of problem solving

1. the right way
2. hacking away at the keyboard until it works <-- beginner way
[/quote]

But if you don't hack away at it, you might never get it to work. I feel that once you get it to work then you can ask youself "How can I make this better" THEN you can do it the "right" way...if there is such a thing. With programming there are hundreds of ways to do one thing and get the same output...who's to say which one is right?

I'll stick with obsidians 1-5 system and give myself a 2 or 3. I've been using PHP for a while but it isn't until recently where I've wanted to actually program in it and use it as my own. I don't have any formal training or classes so all of my learning has been through reading book or online, looking at examples, talking to others (like on here), and "hacking" away at the keyboard until I can get something done the way that I want. Once I get to that point I ask myself "What else is out there that might make this better?"
Link to comment
Share on other sites

Yes but you just admitted to being new in that post of yours soo.. it kind of applies to what I am saying. It is hard to put it into words what I mean its one of those things where once you reach a certain level it is just obvious.

In your case you are starting out and hacking away and then saying how can i make this better. With more experienced programmers they have coded it many times before, so when they go to start programming it they can say "how can i make this better" BEFORE they even start coding and this has a lot of advantages.
Link to comment
Share on other sites

There will always be a better way.  "Better" ways are found every day.  And even then, the so-called experts always argue what the current "best" way of lots of things are.  Therefore, there comes a point where no matter how skilled you are, you are going to have to decide that the method you choose is "good enough." 

I will agree with you that there are no lack of people out there who have plenty of time on their hands and yet still choose the not-so-great methods.  But you should also consider this:  Non-technical people out there have no concept of patience in researching a reasonably "good enough" method, when it comes to programming.  There are many times when a programmer is forced to decide that the method that works but is not-so-great, [i]is[/i] "good enough." 

Link to comment
Share on other sites

as you said non-technical people have no patience, and non-technical people are not experts.

What I said was an observation that I believe to be true, I have nothing against people choosing not to specialize in a specific area as long as they don't pretend to be something they are not when looking for work in that area they are not experienced with.

When people look for work in a specific area I have a higher standard for them to meet. But if they are just doing it for them self and are not technical, I do not hold it against them but at the same time I see them for what they are, that being beginners or maybe beginners going into the intermediate level.

Everyone starts off by hacking away at the keyboard till they get something that works, a lot of my view on this area has been from looking back at some of the code i wrote as a beginner and seeing similarities in my own beginner code and other beginners.

Everyone starts somewhere.
Link to comment
Share on other sites

Nameless12, I never claimed anything about simply "hacking away" at a problem until I could "get by" with. As a developer, I absolutely [b]refuse[/b] to just make do with anything I write. However, I do disagree that "anyone can figure out a solution if they hack away long enough" statement. There are dozens of problems that have come up at work and other places (look through these forums for instance) where an inexperienced user spends hours, days or even weeks trying to solve a problem with no luck. On the other hand, an experienced user will have enough knowledge of functions and APIs to come up with a good solution. It may not be the [i]best[/i] solution, but if it's planned out and works well, most employers aren't going to complain. Now, if you have the time to go back and improve that code once you learn better, I also believe it's the mark of an experienced developer to have the desire to improve upon that solution as they learn.

I agree with C_V that the "best" way is often under debate, and even experts disagree at times, but that goes even beyond the "knowledge" I'm speaking of in this case. For instance, in my interview recently, I was given a question to solve on the spot, and my solution involved the use of fgetcsv(). Well, it turned out that the managers I was interviewing with weren't aware of that function. Their solution was to manually use fgets() and explode() to parse out each line. Was one better than the other? Not necessarily, but even with their higher experience and coding knowledge there was something I was able to add to the solution of which they were not knowledgeable. If they, being more experienced had figured out a way to solve the issue and it wasn't the most optimal code, there is [b]no way[/b] I would have said they were "hacking away" until they got a solution. Thus you see my initial point. I will work at solving a problem using the functions and other resources I have at my disposal. Just because my knowledge of the language's predefined functions may be lacking in some area does not mean I can't get a problem solved.

Hopefully this verbose explanation helps illustrate my initial point better. I didn't think it was that hard to understand what I was saying, and obviously redbullmarky got it right off :P
Link to comment
Share on other sites

About the statement "anyone can figure out the solution", It depends on the type of programming. Anyone can make a forum, anyone can make a blog and anyone can make a cms. When it comes to the things php does anyone can pretty much sit down and get results.

When I was a beginner I sat down and said, I am going to make a forum. A few days\week later I had a working forum. It was poorly coded and unmaintainable at the time I did not know the complete php language and it really showed. But I was a result oriented beginner just trying to get it to work "like all beginners out there", and I got the result I wanted, that being something that worked. When I refer to beginners hacking away at the keyboard or anyone being able to do it I am referring to things like this.

About the argument of there is no right way I agree, there is no right way to do it BUT there ARE wrong ways to do it.

I just had another glance at your post and you said there are some things beginners get stuck on for days and weeks and in some ways I agree, some people are going to have problems putting things into context in a way that confuses them. It happened to me in many ways, but I got over it. This is not the kind of thing I am referring to when I say people can sit down and bash away. There are ways to work around a lack of knowledge and this is why I think beginners are capable of getting results and thats what beginners are usually after, and why the results the beginner gets work they are programmed in what I call the bash away at the keyboard till it works approach.

I get the feeling we have been referring to 2 different yet similar things.

Link to comment
Share on other sites

So nameless, to sum up your thoughts, basically what you are saying is that until you can bust out good code, you are a beginner.  Is that right? If not, please clarify, because several people (myself included) have tried to explain that "good" is just some arbitrary term when it comes to coding, and that whether it is "good" or not is largely determined by the circumstance at hand. 

It seems to me that you fail to really understand that.  Or at least, agree/accept that.  Do you happen to have some hard and fast rule to determine whether code is "good enough" or not, irrespective of circumstance? If so, I would be most interested in hearing/discussing it.
Link to comment
Share on other sites

[quote author=Crayon Violent link=topic=123688.msg514818#msg514818 date=1169918917]
So nameless, to sum up your thoughts, basically what you are saying is that until you can bust out good code, you are a beginner.  Is that right? If not, please clarify, because several people (myself included) have tried to explain that "good" is just some arbitrary term when it comes to coding, and that whether it is "good" or not is largely determined by the circumstance at hand. 

It seems to me that you fail to really understand that.  Or at least, agree/accept that.  Do you happen to have some hard and fast rule to determine whether code is "good enough" or not, irrespective of circumstance? If so, I would be most interested in hearing/discussing it.
[/quote]

I am saying that beginners are more likely to not know the complete language and  zero design patterns resulting in beginners working around what they dont know in a way that creates an application that works, but in a way that the application is unmaintainable and insecure and poorly coded.

The more people learn the less they work around what they don't know, and by doing this they are able to create better applications and plan ahead in their designs in a way a beginner cannot.
Link to comment
Share on other sites

Some of y'all have been coding longer than I've been alive lmao (I'm 14)...

Hmmm what level of programmer am I...

The only things I know are PHP, SQL, HTML (CSS), JavaScript, and I feel like I'm forgetting somethin , but I don't know what...

I've been messing with HTML since I was like 11 or so, but just about 4 months ago got into CSS... At first CSS was weird, but then it just clicked and everything HTML wise became 10 times easier lmao...  I'm bad at advanced JavaScript stuff, but I've made a pretty kick ass [if I can say so] javascript/php image gallery and a few other things.  PHP... hmmmm... I have no idea when I started messin with PHP... Maybe a year ago?  A year and a half? Two years?  The past years have just all blurred together lol...  With PHP I just got into OOP about a month ago, and I like it so far... Between PHP and (my/ms)sql I can make blogs, forums, news handling sites so on, but of course since I'm 14 I've never made any thing for production purposes besides my father's site when I was like 11 lol...  PHP wise I can normally code just about anything with out having to look functions up, but that doesn't really mean much.  I've coded various random things for my self, and I coded some mssql data analyzing scripts (for free) for a guy that hosted a server of a game I play... That is basically what built up my sql knowledge... I was pulling data from about 15 different tables on 3 different databases while comparing and sorting at the same time.  Another guy that was helping was an SQL tech of some sort and he was said I knew more than him though I don't know whether he was being over generous or not.

If I had to choose a level of programmer that I am, I would probably say different things under different conditions.  Discussing solely PHP I would say intermediate to advanced, but if I was asked the question talking about programming in general I would say beginner with out hesitation.
Link to comment
Share on other sites

[quote author=corbin link=topic=123688.msg515889#msg515889 date=1170045249]
If I had to choose a level of programmer that I am, I would probably say different things under different conditions.  Discussing solely PHP I would say intermediate to advanced, but if I was asked the question talking about programming in general I would say beginner with out hesitation.
[/quote]

I think that this statement sums up some of the discussion above. I agree with Nameless12 that we've been referring to different yet similar principles previously in this thread, but I think that the lack of definition of what "programmer" is in this context serves to muddy the waters further. Not to question corbin's abilities at all, but this comment serves as a sounding board for some open consideration:

At what level does PHP coding differ from programming?

If one is a beginner programmer, how can they then hold an intermediate to advanced level of PHP coding? Doesn't PHP coding require programming knowledge and application design principles much the same as a desktop application written in a compiled language like C++ or Java? I challenge the overarching tone of this thread, then, to be discussing one's overarching programming principles and understanding as much as PHP syntax and function understanding alone.

Again, I'm not doubting corbin at all, in fact, if someone is able to plan and code major applications for web using PHP, I dare say that their general programming level may be a bit higher than they would choose for themselves. If you truly grasp the principles and concepts behind application design and programming, the only thing standing between you and another language is syntax and API.
Link to comment
Share on other sites

I don't think this is going to answer the question directly, but I personally think there is a HUGE difference between using a scripting language like PHP and using a compiled language like C or even VB. 

With PHP you don't have to declare datatypes for your variables.  Hell, you don't even have to declare your variables.  With PHP, you generally don't have to worry about dealing with memory (unless you're creating objects or messing with a ton of data).  With PHP, you don't have the process of compiling multiple things into the application to make it work each time (libraries, classes, etc)... most of them are either installed on the server or they're not.  Also, with PHP, you don't have to worry about system constraints like window size, OS, etc, etc.

PHP is a much more seamless language to deal with and I think it dumbs down a lot of "coders".  Personally, I don't think I'd ever hire someone to do a programming job that just had experience with scripting languages. 

But I guess that's another topic altogether.

And just a side note to corbin's comment... no offense, but I'd be really careful calling yourself "advanced".  Some of the most talented people on this board have posted in this thread and I have yet to see any of them even glance at a word like that.
Link to comment
Share on other sites

Sorry, guys, I was gone for the weekend, and I missed a whole series of good posts... just to add to the "hack" vs "think about it" argument -- all of this goes out the window when you have a client with a deadline, and the deadline moves up to tomrorow morning.  Only a skilled programmer can "hack" something together properly that it stable enough to make it into a production environment, knowing full well that that same code will disappear in less than a week.  Nothing wrong with "making it work", and long as it's robust.
Link to comment
Share on other sites

  • 1 month later...
wow, all great posts. LOL...if all "top helper" here consider himsef intermediate or beginner, then i definitely super beginner. haha. I like PHP compared to other server-side scripting langauges. PHP is easier to learn and at this moment i enjoy it very much. This php forum is great!
Link to comment
Share on other sites

When it comes to programming, I'm by no means an expert or professional.  But from my experience I'm way above average; I think most of the individuals in this thread who called themselves intermediate fall into the same category.

In college, I always received some of the highest scores when it came to my programs and they always worked.  I used to help people with their programs and their code looks like an unreadable mess to me; they'd look at mine and say, "I wanna program like you when I grow up!"

Like I said in another thread, programming is merely problem solving.  Good problem solvers tend to make good programmers.  There are many more individuals that will solve one problem and create ten others than there are individuals that will solve the initial problem and not create another; this calls for foresight, an invaluable tool in any programmer's arsenal.

Good programmers also have a good understanding of people.  99 times out of 100, the program you're writing is intended to be used by regular, non-technical oriented individuals.  If you can't understand the basic problems and complications your users are likely to have, your program will be difficult to use.  You also have put yourself in your shoes; don't debug your program thinking, "I want to get this to work."  When I debug or test my program, my thought is "Does this work and is it usable?"  Does the program make you perform unnecessary steps?  Does it contain confusing vocabulary?  In terms of usability I follow a basic rule:  Can my mom use this?

I think another thing that sets good programmers apart are the ability to isolate and fix problems.  I've fired up a script that used to work and come up with just a blank page, no indication of what's wrong.  You have to be able to troubleshoot that and many people can't.

In order to become great at debugging, I think practicing in the worst possible conditions is a great way to hone your skills.  When I started learning C++ and VB before college, I had windows IDEs with syntax highlighting and debugging.  When I started learning C in college, we used UNIX.  I was lazy and didn't want to go to the computer lab, so I used telnet to get into the system.  I learned how to program and debug C programs (multi-file programs with memory management) using printf in five black and white, 80x26 telnet windows.  When I finally did go into the computer lab, I'm surrounded by students using full screen IDEs with syntax highlighting and debuggers and they [i]still[/i] can't find the problems in their code.  And I'm sitting in the middle of them, with my 5 telnet windows chugging away without problems.

Someone made note that scripting languages can "dumb" programmers down and they may not consider hiring an individual who had just scripting experience, I agree to a point.  I think scripting languages are very dumbed down in terms of things the programmer needs to keep track of.  I think the average person's head in the PHP Help forum would explode if you told them they had to know [i]in advance[/i] how big their array would be.  But I think a good PHP programmer is just about as good as a good C or C++ programmer if the program is to be written in a scripting language.  And [i]any[/i] good programmer can become familiar with almost any language rather quickly to the point of getting things done.
Link to comment
Share on other sites

I agree on 99% of that.  Nice post. 

A small tidbit though... a good programmer knows he can normally adjust the bounds of an array where necessary, despite normally defining "a" boundary up front.  ;)
Link to comment
Share on other sites

[quote author=ober link=topic=123688.msg548362#msg548362 date=1173463680]
A small tidbit though... a good programmer knows he can normally adjust the bounds of an array where necessary, despite normally defining "a" boundary up front.  ;)
[/quote]

Well...duh!  8P

I think you knew what I was getting at, but I can't leave it up to chance!  So I'll have to explain myself.

In a programming non-OOP language, making a copy or changing the size of an array is not a straight forward process.  I'll use C as an example.

If you need to make a copy of an array that is 20 ints, easy.  You just malloc some extra memory, zero the contents out, and copy the old array into the new one.  Likewise if you need to make the array bigger, just malloc more memory and do the same thing.  The situation becomes trickier though, when you have an array of structures.  And those structures themselves contain pointers to memory.  When you copy that array, you have to ask yourself, do you want those structures to be internally pointing at the same place? Or do you want to make copies of [i]all[/i] internal memory no matter how deep it's nested?

Developing a copy routine that deals with that situation is a good way to separate good programmers from the inexperienced (or just plain bad) programmers.  Writing routines like that is also a very good way to introduce subtle bugs into a program.

Now with a language like C++ that supports copy constructors, joy!

Link to comment
Share on other sites

I am a bonifide noooob. I have been doing some work on the side here and there and have been working on teaching myself while I build whatever. I have yet to come across anything that I could not fix by simply reading my php ref. manual. I have yet to do anything really exciting, closest thing that I have come up with was a fuction to simply return the number of results and page them while providing links that told you what the results are that you are liiking at.

I have started to become extremely concerned about security with the projects that I am working on though and have been working on ways to keep form either getting hacked or becoming a spammers sendmail. I have not had the luxury to go to college to get taught the proper way to do things, but I learn as I go. I might add that unlike some people who post here, I do not rip off code and say that I wrote it, I sit down and work it out until I am happy with the results.

I have learned alot by just cruising the forums, and except for some of the webste critique stuff, I think that people here are more than happy to lend a hand, always funny to read somebody replying to their own post saying they fixed whatever and it was just a typo.

I don't really know how much programming I want to learn, since learning is something that I love to do I tend to tackle some of the hardest things before I do the simplest. But for now I will stick with writing search scripts and building sites for a few people and see where that takes me.

Link to comment
Share on other sites

The chart below is my programming resume over the last 20 years since I moved into PC/Mac programming. Prior to that it was all mainframe stuff.
[pre]
+--------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    | 1|  |  |  | 5|  |  |  |  |10|  |  |  |  |15|  |  |  |  |20|
+--------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+----+
|  SQL              |xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| D  |
|  Delphi            |                      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| E  |
|  BCPL              |xxxxx                                                      | S  |
|  C                |    xxxxxxxxxxxxxxxxxx                                    | K  |
|  C++              |                  xxxxxxxxxxxx                            | T  |
|  VB                |                xxxxxxx <---  occasionally as reqd    --> | O  |
|                    |                                                          | P  |
+--------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+----+
|  HTML              |                                xxxxxxxxxxxxxxxxxxxxxxxxxxx|    |
|  Javascript        |                                xxxxxxxxxxxxxxxxxxxxxxxxxxx| W  |
|  ASP/VB            |                                  xxxxxxxxxxxxxxxxxxxxx  | E  |
|  Java              |                                      xxxxxx              | B  |
|  PHP              |                                            xxxxxxxxxxxxxxx|    |
|  .NET              |                                                        xx|    |
+--------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+----+
[/pre]

On a scale of 1 to 10 I wouldn't claim more than 7 in any of them (.NET definitely a 1 so far)

Formal training, zero. All self taught as the need arose.
Link to comment
Share on other sites

[quote author=Barand link=topic=123688.msg549153#msg549153 date=1173557146]
The chart below is my programming resume over the last 20 years since I moved into PC/Mac programming.
[/quote]

Very nice, Barand... I need to work up one of those to attach to my resume ;)
Link to comment
Share on other sites

i would say the beginning to mid intermediate. i do not feel that i would pass the php cert exam. i will begin studying more for it once i talk to my boss about taking the courses etc

everything that i know about programming is self taught. id have to say it started in 97 when my hs teacher showed us how to write programs in our ti85 calculators. after that i would throw together a program[macro] that would handle the most mundane tasks[cheat on my tests :)]

then came college for engineering where i didnt do any programming. i had an idea to build a website and asked a friend how i would go about doing that. he said php and so here i am today.

a year ago i took a position at penn state university as a programmer - php/mysql/javascript - and the lead guy used all oop practices since he came from a java bkg. since then, i've been studying hard and looking to expand my oop[code=php:0] understanding and i use classes to do everything.

i recently took up increasing my oop javascript knowledge because of mootools. im still in the beginning stages of that and there is nto a lot of documentation on it. so i am assuming that it is a lot like java oop and i am looking into that. those guys in the mootools forums just seem to understand it and i am totally lost for the most part with binding passing classes and methods etc

after i put in some time with that i want to get a handle on regex life effigy has. it just seems "cool"

i do feel that i could pick up just about any language with the right amount of time and most importantly, a goal
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.