Wanna Enter the Real Programmer's World

Although stated in a crude manner, Akshay does have a point when he said programming is nothing. i.e if what he is referring to is the syntax of the language. All you need to do is to develop is logical thinking and learning the basic fundamentals of a system.

For example, without any prior knowledge of Perl and using only an on line reference manuals, I was able to create some scripts for automating some stuff on Mac OS and Windows involving reading/parsing and generation of XML files as well as a few utility tools and all that in just a couple of days and it saved the company about 4~6 months of testing effort for about a 100 guys. Another time I was able to write a small game in Java without having any any prior experience with the Language.

I cannot claim expertise in Perl or Java, but I can write working software in both of them not to mention Visual Basic and C# just as well as I could in C++ which I use on a daily basis. In fact I had very little programing experience with VC++ before I stated working.

I know a number of people who do programming on a daily basis with out even knowing what a Memory leak or memory corruption or a stack corruption means nor the difference between any of them. They don't know how a program is executed by the processor. They sure know the syntax of the programming language, but without such fundamentals we cannot write efficient and bug free software.
 
Generally importance of a programming language is over estimated. But here in this thread, I think it's being underestimated. One of the very famous frameworks for creating web applications, which changed the way programmers think about programming web in general and configuration with xml in particular, rails was possible mainly because of ruby. It would have been difficult or impossible in any other language. There have been no of rails clones, nothing came close to it's simplicity, productivity.
Alex Stepanov worked hard on creating a proper implementation for his thoughts on generic programming but couldn't do that partly because of the complexity of implementing his thoughts in a proper programming language until he saw c++ with templates. That with a few changes to the language made it possible for him to realize his thoughts and STL was the result. Read his book "Elements Of Programming" for details.
Creating an operating system or a device driver and yet write parts of the code to be portable requires a good memory model which C offers. Try to express the same stuff in java or c# or python, you will understand why c has the features it has. If you can't read Alex Stepanov's interviews and a few more articles on c's simple memory model.
Algortihms aren't everything. If you need to create a program consisting of thousands or millions of lines of code, you need something more than that. Abstraction mechanisms. That's where a programming language helps. Provides us with abstractions to be able to get to a solution. As Bjarne Stroustrup puts it, "You think in Code". That's what Kernighan suggests in his book "Practice Of Programming".
Choice of programming language doesn't mean everything, but it also cannot mean nothing.
 
Lord Nemesis said:
All you need to do is to develop is logical thinking and learning the basic fundamentals of a system.

For example, without any prior knowledge of Perl and using only an on line reference manuals, I was able to create some scripts for automating some stuff on Mac OS and Windows involving reading/parsing and generation of XML files as well as a few utility tools and all that in just a couple of days and it saved the company about 4~6 months of testing effort for about a 100 guys. Another time I was able to write a small game in Java without having any any prior experience with the Language.

aka any problem on any platform in any language

Lord Nemesis said:
I cannot claim expertise in Perl or Java, but I can write working software in both of them not to mention Visual Basic and C# just as well as I could in C++ which I use on a daily basis. In fact I had very little programing experience with VC++ before I stated working.

This to me is the 'Real Programmer's World'

Real problems in need of solutions.
 
hammerhead said:
Akshay, to be a good programmer does not mean knowing the syntax alone. Play with threads, classes, pointers and you will find that you can solve a problem using multiple ways.

I understand that, that's why i said too. With a practice in particular language you learn more about your tools. you learn to use to sword better ;) only with experience !

but for newbs i never advice to spend all time on just mastering a programming language. you can gain expertise later as you develop.

Lord Nemesis got my point.

For example, am not a master in shell scripting, but i was able to develop them on the fly whenever necessary for my servers, just by reading some man pages and syntax.

We are not Windows API experts, or Linux API an OS Gurus. But still our programs written for Windows and Linux are used by thousands of people !!

I just had to know few basics of win api and windows programming in general to get my ideas into a working program/solution.
 
@haraakiri: What you posted sums up my point. Its the logical thinking that matters.

For example you say STL would not have been had it not for C++. STL is a tool, but what is C++ and how did it come by. That's also another tool that came by because of someone else's thoughts that were put in action. It may have been difficult for a library like STL to come by with out C++ and templates, but had it been impossible? I think not.

Its a hurdle alright, but I guess he would simply envision something like C++ and create it if that's whats stopping him. A programming language is a tool that is the means to a problem, not the end.

If you learn to think logically, you will find the solutions to the problems and use whatever tools are required and make them if they do not already exist. If you think in terms of a programming language, you will be limited by its boundaries.
 
wow..

thats a lot of material for me to ponder through. will definitely be working on all I can pick out from here.

Thanks a lot, guys!
 
forget leaning about pointers and assembly etc

programmers are basically problem solvers

you should get a hold of algorithms by cormen and start solving puzzles on topcoder.com

the language is up to you...c++ or java or something else
 
greenhorn said:
@ LT - yup I work in QA now. Apart from the occasional foray into scripting, dont write any code now. Breaking crap code ( the stuff written by the average coder in the organization I work in) is more predictable, and more fun than writing crap code (given the timelines and circumstances :D)

I can understand... have seen things been broken down mercilessly (not mine... phew) by a qa colleague of mine. Irrespective being a dev, I am keen in learning QA environments, how it goes about giving the sharp edge to the software.

As you had mentioned previously, like you said in QA, I also writing software an art.

~LT
 
Well sorry for interrupting the thread . But even I need help in getting everything sorted out . So this is what I sent as pm to blufox but he hasn't replied yet . Anyways since there are many more people here who can answer my questions here it goes .

Hello , well I need help/advice/guidance with coding . Well I really am interested in coding . Right now I'm learning C++ in my First Year Engineering . But since I have already done basics of Java in 10th I would like to do it at a faster pace . So basically what I want to know is that which all softwares I need to know to get into a big company . And I don't only mean be a lame programmer for my life . I want to get big , I'll most probably be doing MBA in something . I asked one of my friends who is a Web Designer what all softwares he knows/uses for his work . Well this is the list he gave me

C#
C++
Java
Python
Ruby
xHTML
CSS
JAvascript
PHP
Now , I want to know which is more important to learn
C or C++ or C# ? If they are all different then whats the difference ? Also could you suggest some books and software I need to have to get started ? Currently I'm using Turbo C for my programs . College is teaching us lame shit like printing patterns and all . Pretty boring . I know they will teach us in the 4 years . But I want to learn other softwares that are used . If you could help please do .
__________________
 
^^^^^^^^^^ MBA and Programming ? conflicting ! Choose one.

Again you are missing the point, you should learn solving problems in computer science. And learn C,C++,Java,php..........etc with time.

All companies test your problem solving. And not your C,C++ syntax and also not language features.
 
Hmmm.... well other questions also are there naa difference between C/C# and C plus plus ... also why is MBA and programming conflicting ? I mean wouldnt doing MBA after engineering get me a better job ?
 
C, C++, C# are all different ways to doing the same thing. That is solving a problem.

If you spend all time only learning in depth C,C++,C#,Java trust me you will get a job no where.

MBA is for management jobs, you want to be a programmer/coder or a manager ?
 
Scorpy said:
Hmmm.... well other questions also are there naa difference between C/C# and C plus plus ... also why is MBA and programming conflicting ? I mean wouldnt doing MBA after engineering get me a better job ?
Erm, I think for someone in college its very easy to get illusioned by this notion.
If you always wanted to do an MBA then why are you wasting and extra year doing your engineering. You could go for other 3 year courses which give you exposure to comp. sciences if thats all you wanted to do.
 
a_k_s_h_a_y said:
What you need is Computer Architecture and Operating Systems Architecture/Internals/API.

Programming is crap, you learn a programming language in 3 days. Be it ASM, JAVA, C++, C.

And you learn Data Structures in a week and as for Algorithms, the day since you were born. Problem solving that is.

As for proficiency at a programming language it comes only with practice in that particular language and style. But its not really needed, for you as of now. later gain that. its necessary.

Hmm, I think he meant that learning the syntax of different programming languages is easy and can be learned in a few days and that the tough part is developing your problem solving skills which matter more than just knowing the syntax of different programming languages...

I believe that C is the mother of all programming languages and I just love it.. If you know C very well you can catch up with any programming language easily. But yeah, practice is the most important factor in both problem solving skills and programming skills... You know you can practice your programming skills with the book called "Test Your C Skills". It will really amaze you to see that in so many different ways you can perform a specific task. Then later on as someone said, take on projects. Working on projects will give you more challenging tasks and in the process of completing them, you will learn more complex stuffs.
 
So im currently learning C++ . I think C++,JAva and python will be enough for coding ? I mean suppose I go for masters in computers then ? Though I do want comp hardware in masters .... :/ ... right now stuck with IT .... I doubt its possible Ill get hardware in comps in masters yea ?
 
My advice in this already very infromative thread... For real programming
-Participate in good programming competitions/projects (ICCC, google summer of code etc)
-Learn to read great programmes, (ever read source code of ls ? great style)
-Participate in mailing lists of gcc, valgrind
-Try to hack hardwares
-HELP OTHERS in coding

and

Write your own (small) OS...
Probably six months down the line you would know harware, basic OS structure, algorithms, you will learn Assembly , C and one more lang and it will be fun. And it is HARDCORE programming......
Starting point could be Minix (version 1) with a book to guide.

And remember you should not like programming, you should be addicted to problem solving ... If the coding does not keep you awake till 4 in morning and still far from sleep, you are not doing real stuff yet :)
 
Back
Top