ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
All the advise seemingly come from people who want to keep their precious secret that they paid dearly to possess.
I'm not entirely convince by that argument. The point is there is no single answer to your question. Additionally hidden amongst all the replies is the sound advice of keep persevering. It is possible to give advice on what would be a good thing to learn so that you improve your skills. However we would need to know where you are at the moment. I asked two questions, if you are serious please reply to those.
it says hes actually not thinking of wanting to become a developer ... if thats is so ... then he can try reading bash(and rest , get what i mean) , perl , python , tcl etc , etc and can forget about the rest ...
use things like gtkdialog and xmessage ... by that way you can truly own something that will only show what you want to do and use ... probably stuffing a few of them(unrelated to each other) in each single "apps"(i wouldnt call that applications) ...
but ... seriously ... if you want to become a developer than i think thats another story ... probably a bit too hard or too "unneccsery" for us ...
.
[WAIT ::] i mentioned "bash(and rest , get what i mean) , perl , python , tcl " but they are in no way catering for guys like us ... but for "no-brainer" solutions ... they are good enough ...
What about a RAD tool? Like "Delphi programming language" or "Microsoft Visual Basic"? Those tools are very good and usually very easy to pickup. I remember when I read Visual Basic at school. The book was very small and it was a lot of fun to do applications in no time.
Let's be fair here though. He is asking for the impossible: "How can I learn a new language without studying it? I don't want to have any grammar books and I don't like big dictionaries". While one can indeed learn a new language without those books, it will take longer and at the end you won't be using your new language correctly...
And since he/she is actually not replying to any question and is asking something... well, kinda "silly", IMHO (to do not mention saying "that noone is actually willing to help here)", I am two clicks away of adding him/her to my long ignore list. My "troll-detector" is telling me to watch how this thread turns out carefully...
Last edited by Mega Man X; 04-05-2007 at 06:52 PM.
All the advise seemingly come from people who want to keep their precious secret that they paid dearly to possess. They don't want to share, can someone share with me...
You're right. The cost was time. The secret is knowledge. Unless you know of some way I can magically just copy all my knowledge to you, I can't "make you a better programmer." Have a nice day!
(Such a response to those who are honestly trying to help ... how rude!)
All the advise seemingly come from people who want to keep their precious secret that they paid dearly to possess. They don't want to share, can someone share with me, don't tell me "find yourself", or "there is no short way". I know that I must suffer in order to learn something, but you who suffered can tell me?
What precious secret are we talking about? I must've missed that class in college.
Speaking of college, that would be a nice place to start looking for people who a) will step you through to "enlightenment" and b) get paid for it so they don't lose interest quickly. (No, I'm not kidding).
Programming is a recursion...an interaction. It isn't "ok, I know how to do this...let me do this over and over and over again." It's more like "When I do this, my computer does this, and if I change this, my computer responds with this." As such, a linear model such as "ok, I know how to post on a forum, let me do that repeatedly until I achieve the skill I desire" isn't an appropriate solution.
Now then, if you're looking for direction, then I'm sure the LQ community would respond more quickly to your questions. Instead of "show me the road, oh, and I don't want to put forth any effort", ask "I'm interested in improving my skill as a programmer. What books helped you guys?". To which, I'm sure this community would respond with a plethora of helpful information. Honestly, a good book on object oriented patterns (if applicable) or perhaps even something like "Code Complete" (yeah, yeah, I know it's M$ press, but it's a good book) would result in more help than the question you've posed.
edit - well, ok...there's another alternative...since you want stuff done "the easy way", you could always just ask at any developer meeting grounds (any distro dev channel, programming site, etc...) for them to write the code for you so you don't have to bother learning ANYTHING. That would certainly be the easiest route. (let us know if the results are any different than what you get here).
On a nerdier note, the world of programmers - especially OSS programmers - is not, in any way, shape or form, the Borg collective.
The closest the programmers' world comes to being like the Borg collective is the centre of all knowledge: the Internet.
If you want to learn to program, here's my few nickel's worth:
There is no easy way. I can read about programming languages, and their syntax and sematics, all I want, but in the end, the only way I can retain what I've read is to write a program, and put what I've read to use. If you want to get your name in a project on SourceForge, and do it tomorrow, with little to no programming knowledge, design interfaces using Microsoft Visual BASIC, VB.NET, or Netbeans with the Matisse module. RAD development is what you want. Eventually, you'll start learning the intricacies of programming. But simply, the best way to learn, is to do it.
I'm a fairly accomplished programmer, and I've never done anything like fixing application bugs, or modifying anyone else's source code. I create my own projects for purposes I think that need addressing, or on the request of a friend, and I work on them myself, that way I get well acquainted with how project structures work - or how I think they should work, and how every aspect of the project ties into one another - a symbiotic relationship between program modules.
This isn't the matrix.
You can't simply jack in and download a training
program to learn kung-fu in 10 seconds..
Wow...
Wouldn't it be nice, though? I mean, think about it...all of us who have put countless hours into actually learning could have our jobs taken away by teenagers who aren't willing to put any effort into expanding their own knowledge base? Wonderful concept, eh?
I'm not entirely convince by that argument. The point is there is no single answer to your question. Additionally hidden amongst all the replies is the sound advice of keep persevering. It is possible to give advice on what would be a good thing to learn so that you improve your skills. However we would need to know where you are at the moment. I asked two questions, if you are serious please reply to those.
I started learning about programming with a slow progress, because I think that I should learn to use functions and knownledge.
When I tried to learn Assembly, I give up because it's complicated, too much knownledges to learn and understand. Sometimes, I read again and again an explanation without understanding.
Now, I found a precious experience: if I can go back in the past, I'll tell myself to be careless about knownledges, to be imaginative and creative, to accept the limitation of knownledge, but not to accept the limitation of stupidity.
I want to know if you have had similar experience, tell me what wound has made you stronger.
There's a Nietzsche for every age.
Too bad I enjoyed shredding him to pieces in a lecture I gave about post-modernism for my final grade in philosophy, last year.
To cast off any old experiences you have encountered is foolish. Becoming an Ubermensch is a road of continuous self-destruction, and self-reincarnation. If you do away with the old experiences, and mistakes, you are almost certain to repeat those mistakes, time and time again.
There is a philosophy of - and for - programming. However, it does not resemble Nietzschean philosophy in the least. There were so many things in programming that made NO sense to me, until I read a few assembly manuals and books. I can't program in assembly at all, but now I have the knowledge of those things which I hadn't understood before, and am that much a better programmer because of it.
Assembly isn't the greatest language to start with, either. You take driving lessons before you take to the streets in a car, in an normal, unrestricted fashion. It's getting too close to the metal too quickly, especially in this day in age, where you have any number of languages to choose from - like BASIC, Tcl and the various shell scripting dialects.
Nietzschean Ubermensch philosophy is great - if you're a hermit. Learn from your mistakes, they're all you have.
All the advise seemingly come from people who want to keep their precious secret that they paid dearly to possess. They don't want to share, can someone share with me, don't tell me "find yourself", or "there is no short way". I know that I must suffer in order to learn something, but you who suffered can tell me?
I'll tell you the secret. Right before you pass level 2 in the game that is Learning Programming, you can jump on the red block, then duck, jump, duck then press "A". A flying gold fish will come and warp you to a new world. Here you can pick up biscuits that let you learn stuff like C, Java, Lisp, etc.. You only have about 5 minutes in this alter-world, so eat as many as you can. Afterwards, your shot out at the beginning of level 9. I have suffered long to learn this great secret, but I pass it on to you, free of charge.
Seriously though, I am not sure what you think this "secret" is. It seems to me like your joking, but I can never be too sure. The real secret to becoming a good programmer is one thing, and only one thing: curiosity. As long as your curious, doing things like reading programming books is actually fun, and you end up spending way too much of your time learning about programming and loving it. Curiosity is a great motivator, and motivation is key to learning anything. If your not motivated, you won't learn. If your not curious, you just won't be that motivated to become a good programmer.
For fear of raising the hackles of people out there I would say that learning assembly by yourself is a tough ask. Mainly because with assemble you achieve very little, assembly is often about hand crafting small segments of code.
So my first pice of advice focus on high-level languages (C/C++, C#, Java, Pascal)* or scripting languages (Basic, PHP, Python Ruby)*
Then decide upon some medium sized projects that you want to build. This should be a step up from the example programs used to learn the language syntax but not too large that it will take months to complete. Rather you want to look at projects that can be completed in a week. Just work on a few of these projects to completion.
After about a month, go back to the first project and review what you have done. Typically what I learn from such an experience is two-fold, first I wonder what on earth I was doing, secondly I think of better ways that I could have coded it. If you haven't been using functions this is an excellent time to rewrite the project using functions, if you have been using function think if these are the best choice of functions. Again I often feel that by doing this I learn a lot more about what I have been doing and how I can improve the program.
I believe that it is very important to have that significant time gap between writing the code and then reviewing it. As time goes by it is possible to reduce the time between writing and reviewing but the more time you have between the first writing the code and reviewing it the more you will learn about how to improve it.
Don't try and master too many major language features at a time. First syntax, then functions would be a good feature to learn. After that spend some time learning about the debugger, then you will be ready to play around with dynamically allocating memory. Sure there is still a long road to travel but I feel that once you get to this point spending time reviewing you code and re-crafting it you will be a better programmer.
Finally if you have a friend who is also learning programming then share your code with each other and critique each others code. You will learn a lot by reading someone else's code and by listening to their comments on you code. Word of caution: when making suggestion about how to improve someone else's code this must be done with care so as not to offend them or discourage. With every piece of code there are good points, find those as well as the potential faults.
*The examples given are certainly not exhaustive and are given in alphabetical order not any kind of preference order
I'll tell you the secret. Right before you pass level 2 in the game that is Learning Programming, you can jump on the red block, then duck, jump, duck then press "A". A flying gold fish will come and warp you to a new world. Here you can pick up biscuits that let you learn stuff like C, Java, Lisp, etc.. You only have about 5 minutes in this alter-world, so eat as many as you can. Afterwards, your shot out at the beginning of level 9. I have suffered long to learn this great secret, but I pass it on to you, free of charge.
programmer.
I read this many times with different interpretations, I guess that you need to be creative and "eat as many as possible", I want to be in that after world.
Other answers are quite knownledge intensive, I am creative but I have a fear of achievement. How to overcome these feelings?
First off, don't wait for something to come along...AT ALL. Actively seek out projects that interest you. It doesn't have to be a GPL'd public project...something you can work on at home in your free time for your own personal satisfaction is quite alright.
Second, don't take on a project like re-writing a kernel. Keep your goals realistic for now, because given enough time and curiosity, you'll get wherever you want to end up.
Third, here's a quote from Eric S. Raymond's book, "The Cathedral and the Bazaar":
Quote:
Originally Posted by ESR
1. Every good work of software starts by scratching a developer's personal itch.
Look for something that will fix a problem YOU are having, or a concept you are interested in. Do you like game development? Do you like GUI development? Do you hate the way such and such program does this or that?
Some people can't get into "lab" style development...I personally don't see much use in writing code for the sole purpose of learning. I want to write code that does something. Code that most tutorials include is written to point something out, and while that's not necessarily a bad thing, it does get boring sometimes.
The key thing is to "keep one oar in the water at all times"...and if you get stuck, THEN come and ask for help, as I'm sure there are plenty of programmers here that would be more than willing to point out a better way (as long as the problem isn't generic like "make me a better programmer"...if you ask "hey, I'm working on an adesklet to do blah, blah...but it doesn't seem to be able to something I want it to...I think the problem is here." then people will respond much more enthusiastically to your query).
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.