hello ..
I'm currently learning java in general way .. so i want to ask if there is things should learning before learn any programming language ?
like : html .. css
or
any algorithm or solve skills ?
- Follow via:
- RSS
- Email Alert
Question
0
Votes
Answers (18)
7
Votes
Math and Logic
Even with high level programming languages, the key to a programmers skill is their understanding of math (Boolean in particular) and logic.
The better your math and logical approach to solving problems, the better you will understand a programming language and be able to write efficient code.
As a lot of other languages are built on the core of "C" and "C++", I would want to have a working understanding of "C" before moving on to other languages.
Chas
The better your math and logical approach to solving problems, the better you will understand a programming language and be able to write efficient code.
As a lot of other languages are built on the core of "C" and "C++", I would want to have a working understanding of "C" before moving on to other languages.
Chas
29th Jan 2012
3
Votes
Agree With Chas
The really important concept is "formal systems". That is systems that have complete and precise definitions, and which you can use formal logical arguments to prove or derive things and be absolutely certain they are correct.
The same applies to programming languages. For example, an Integer in programming is not just a "normal" integer. Among other things, they have a maximum value. They can't be infinite like a "normal" integer. So, you need to keep this in mind when writing you code.
The danger is when you think about a programming construct as being like something with the same name in the real world. They are not, and they don't follow the same rules.
Maths helps people learn to think in a formal methodical way, particularly when you work through proofs. Just like maths, in programming, you have a number of relatively simple, precisely defined tools and have to figure out how to combine them to create a solution.
Good Luck
The same applies to programming languages. For example, an Integer in programming is not just a "normal" integer. Among other things, they have a maximum value. They can't be infinite like a "normal" integer. So, you need to keep this in mind when writing you code.
The danger is when you think about a programming construct as being like something with the same name in the real world. They are not, and they don't follow the same rules.
Maths helps people learn to think in a formal methodical way, particularly when you work through proofs. Just like maths, in programming, you have a number of relatively simple, precisely defined tools and have to figure out how to combine them to create a solution.
Good Luck
30th Jan 2012
0
Votes
Nothing
I don't think there is any thing you really need to know before programming. A math background helps but unless you are writing some really complex algorithms it probably isn't necessary.
There are programming concepts that you should learn as you go. So I'd suggest buying a good book or following a detailed tutorial that will walk you from the basics to the advanced.
"Big Bad Java" is the book my program used for java and it seemed to cover most of the programming concepts used in java.
There are programming concepts that you should learn as you go. So I'd suggest buying a good book or following a detailed tutorial that will walk you from the basics to the advanced.
"Big Bad Java" is the book my program used for java and it seemed to cover most of the programming concepts used in java.
30th Jan 2012
4
Votes
Written English would be my suggestion.
If there is no command of a written language, you'll never develop computer languages.
30th Jan 2012
Replies
I would agree with you.
valchau
31st Jan 2012
First of all, English probably isn't his first language. I've worked a lot with tech staff in Asia, and it's clear to me that failure to master English has nothing to do with a person's programming skills.
Secondly, there are a lot of talented programmers who have trouble stringing sentences together and can explain with a diagram and flowchart better than they can with words....
Secondly, there are a lot of talented programmers who have trouble stringing sentences together and can explain with a diagram and flowchart better than they can with words....
marcedhk@...
31st Jan 2012
rude...pompous
pfisher2k
1st Feb 2012
3
Votes
I agree with anthemwebs
Dijkstra a long time ago said something like "If I had to choose programmers I would choose them on the basis of excellent command of their native language". I do not know how well heshesh2010 commands his own language, and that is Dijkstra's criterion, but his English could do with improvement and mapping one's own language to another is comparable to mapping a user's desires (often expressed in poor natural language) to good specifications and thence algorithms and thence to program codes.
30th Jan 2012
Replies
I'm Arabian man from Egypt but my English not bad at all .
so i think English not necessary in programming because u deal with syntax not with English grammar.
so i think English not necessary in programming because u deal with syntax not with English grammar.
heshesh2010
30th Jan 2012
Your English is not as good as you think, but Dijkstra's point was about your native language. How good is your Arabic?
john.a.wills@...
31st Jan 2012
To john.a.wills
Ask him in Arabic if you really want to make the point.
Ask him in Arabic if you really want to make the point.
Charles Bundy
31st Jan 2012
I don't think it rude or pompous to assume a programmer have a command of the local language (English in the States).
When I attended a SAP R/3 qualifying class in 1999 there were two individuals attending from Canada. One of the individuals, an Asian lady who moved to Toronto from Hong Kong had excellent language skills and breezed through the month long class. The other individual was born in Quebec, spoke French as his first language and was totally lost during the classes.
He wasted the $20,000 tuition cost of the class as he couldn't even read the qualifying test questions, much less answer them.
When I attended a SAP R/3 qualifying class in 1999 there were two individuals attending from Canada. One of the individuals, an Asian lady who moved to Toronto from Hong Kong had excellent language skills and breezed through the month long class. The other individual was born in Quebec, spoke French as his first language and was totally lost during the classes.
He wasted the $20,000 tuition cost of the class as he couldn't even read the qualifying test questions, much less answer them.
mperata
3rd Feb 2012
in my study in university all my exams come from the open university from UK and i can deal with all exams and solve it I'm not very bad in English at all .. but I can reading and translate but i can't talking with English man perfectly.
heshesh2010
4th Feb 2012
@mperata
Some people can read well, but not understand well when it is spoken. Some can read and listen with great understanding, but can't write or speak it well because all the seemingly arbitrary rules and exceptions can be confusing. I've worked with people like that - one guy in particular was the master of API programming in C++ and VB, as well as the Solaris and Linux guru. I could just tell him what I wanted (in English), hand him the docs (which were in English) and he'd come back in a few days with exactly what was needed. But forget about trying to discuss with him directly - he had to relay his responses to another colleague in Chinese, and that guy would then relay it in English. But regarding his programming skills, he was the most useful resource in the company. There were 2 other guys that were even more skilled programmers, but they were totally Java-focused and lacked his breadth of experience and all-around usefulness.
The french speaking guy you referred to was obviously not ready to be able to tackle that class in English, but that does not mean he is not a good programmer. If he had done the class in French, maybe he would have been able to master the concepts being taught.
Some people can read well, but not understand well when it is spoken. Some can read and listen with great understanding, but can't write or speak it well because all the seemingly arbitrary rules and exceptions can be confusing. I've worked with people like that - one guy in particular was the master of API programming in C++ and VB, as well as the Solaris and Linux guru. I could just tell him what I wanted (in English), hand him the docs (which were in English) and he'd come back in a few days with exactly what was needed. But forget about trying to discuss with him directly - he had to relay his responses to another colleague in Chinese, and that guy would then relay it in English. But regarding his programming skills, he was the most useful resource in the company. There were 2 other guys that were even more skilled programmers, but they were totally Java-focused and lacked his breadth of experience and all-around usefulness.
The french speaking guy you referred to was obviously not ready to be able to tackle that class in English, but that does not mean he is not a good programmer. If he had done the class in French, maybe he would have been able to master the concepts being taught.
marcedhk@...
4th Feb 2012
2
Votes
There isn't much to learn, but you need some innate talents
Being able to think logically and being able to see complex patterns helps a lot.
Also, as said before, you need to have a good grasp of your spoken language, whatever that may be. A big part of programming is documenting. If your documents are unreadable, you won't be employed for long.
Also, always remember that a user will do everything wrong, and its your job to stop them.
Also, as said before, you need to have a good grasp of your spoken language, whatever that may be. A big part of programming is documenting. If your documents are unreadable, you won't be employed for long.
Also, always remember that a user will do everything wrong, and its your job to stop them.
Updated - 30th Jan 2012
Replies
Slayer: I love what you say here: a user will do everything wrong, and its your job to stop them.
I interpret that as meaning your code must be very robust and well tested in terms of what could possibly go wrong and handling as many error conditions as you can find or think of.
I interpret that as meaning your code must be very robust and well tested in terms of what could possibly go wrong and handling as many error conditions as you can find or think of.
valchau
31st Jan 2012
2
Votes
I don't know about before...
But while you are learning make sure you take the time time to really understand how to use the Debugging tools and the methods of Debugging that are employed by the development environment/tool/language interface. I struggled with different areas here and there as Our program (instructional class) progressed thru the coursework, but when I learned how to employ the debugging interface it gave me insight to things and really helped me understand some of the concepts I just wasn't grasping completely.. (It also helps you to ensure that you have an understanding of what exactly your code is supposed to be doing.) Often in life we use "things" that we just input some material and get a predefined or "expected" output but when the result does not meet what we are expecting or desire, it would be great if we could "peel back the cover" to see what is actually happening to that input or whatever the case may be and possibly provide some clues as to why the result is returned the way that it is. Does that make any sense?
30th Jan 2012
-2
Votes
Lol
is thing called a grammaring, you how to grammar should learning.
Updated - 30th Jan 2012
Replies
what do you mean ?
heshesh2010
30th Jan 2012
Good advice for any programmer, this is. Herh herh herh.
jb@...
31st Jan 2012
LOL!! CORRECT!
valchau
3rd Feb 2012
-1
Votes
more things
i also think the term ' Dara structure' is important and some logical ways to solve problem in design stage .
i want to ask what is best java books that turn me from A to Z and make me very perfect .
i want to ask what is best java books that turn me from A to Z and make me very perfect .
30th Jan 2012
Replies
nothing will make you perfect other than experience actually doing the work in a job.
valchau
3rd Feb 2012
3
Votes
Learn to read technical documentation
In addition to what others have already said, you also will be better served if you know to read technical material. This is a skill you have to learn. Technical documentation is becoming a lost art, and as a newbie programmer, you're going to face a doubly difficult time because so much of the material written on the web for free is written by people who do not know how to do technical documentation. Which means there are really two issues here - one is that you have to be able to recognize good technical documentation, and then, you have to be able to learn from it.
The main difference between technical documentation and regular writing is the specificity of terms, and the completeness of the content.
In sloppy technical articles, they will tell you about maybe one or two different aspects, of which there could really be fifteen or twenty. They won't even let you know those other options (they could be key words, reserved words, arguments, tags, functions - whatever)
and you will miss a huge part of the picture.
Also, when learning to program, you are learning a new environment, and there is a vocabulary you have to learn. Many web articles don't teach you that vocabulary.
I've found that going on Amazon and buying a ten-year old book is very cheap. You can get them for under $10, including shipping. And the basic languages have not changed that much in 10 years. But again, you have to make sure that it is good book. You'll have to look at samples from the book either on google books or peek inside feature of Amazon.
The main difference between technical documentation and regular writing is the specificity of terms, and the completeness of the content.
In sloppy technical articles, they will tell you about maybe one or two different aspects, of which there could really be fifteen or twenty. They won't even let you know those other options (they could be key words, reserved words, arguments, tags, functions - whatever)
and you will miss a huge part of the picture.
Also, when learning to program, you are learning a new environment, and there is a vocabulary you have to learn. Many web articles don't teach you that vocabulary.
I've found that going on Amazon and buying a ten-year old book is very cheap. You can get them for under $10, including shipping. And the basic languages have not changed that much in 10 years. But again, you have to make sure that it is good book. You'll have to look at samples from the book either on google books or peek inside feature of Amazon.
Updated - 31st Jan 2012
Replies
Today too many people are not willing to read material for understanding. Nor are they willing to self teach themselves necessary job skills. Yet both of these are really required in order to excel as a software engineer. Being a software engineer is more than simply programming (coding). A good software engineer must be able to communicate clearly with the users in their own jargon and translate what they say into functional and technical specifications and then into simple, concise, well documented code. In addition an excellent software engineer must be able to see how to test the changes at several levels, including setting up a decent test environment and a well rounded set of test scenarios.
valchau
31st Jan 2012
You also need to be able to filter out your own jargon, without dumbing it down too much that it offends the other person.
Slayer_
31st Jan 2012
3
Votes
Non formal approach...
I can't speak from the formally educated perspective as I am not, but I can speak from someone that has learned quite a few languages and built a lot of applications. It all depends on what kind of programming you want to do as to what kind of background you'll need.
If you want to do game or complex algorithms of various kinds, math is critical. If you want to do business software that supports various forms of data manipulation then math is not so critical. I have built custom software applications for many (25+) years and the ability to understand business problems and translate them into custom applications is probably something that can't really be taught. You may be able to get the basics like manufacturing processes, accounting, etc. but it takes a very determined mind to learn what is needed. I was fortunate in that I didn't tell anyone that I didn't have a formal education in business processes and in a way, they taught me their business as I translated it into a custom solution.
The key is learning the correct tool for the job. If someone wants a web based solution it would be silly to use C or C++ as the tool of choice. As would using HTML/PHP/Javascript/CSS/MySQL for a disk formatting utility. It all depends on what you really want to pursue as a career.
All of the suggestions so far have been good advice. I say do the research on what kind of programming careers there are and make a choice of which one interests you the most. Then make a decision on what you really need to streamline your learning process. Formal education always helps when applying at Microsoft or Apple but if you don't want to work for a large corporation then you might want to self teach all that you need using books and the web. A formal education will teach you the thinking skills necessary for programming if you don't have the natural ability but make sure you will absolutely need the skills taught before spending the money and the time. If you're a natural and you don't need to be taught then get some books and go for it.
Best of luck to you...
If you want to do game or complex algorithms of various kinds, math is critical. If you want to do business software that supports various forms of data manipulation then math is not so critical. I have built custom software applications for many (25+) years and the ability to understand business problems and translate them into custom applications is probably something that can't really be taught. You may be able to get the basics like manufacturing processes, accounting, etc. but it takes a very determined mind to learn what is needed. I was fortunate in that I didn't tell anyone that I didn't have a formal education in business processes and in a way, they taught me their business as I translated it into a custom solution.
The key is learning the correct tool for the job. If someone wants a web based solution it would be silly to use C or C++ as the tool of choice. As would using HTML/PHP/Javascript/CSS/MySQL for a disk formatting utility. It all depends on what you really want to pursue as a career.
All of the suggestions so far have been good advice. I say do the research on what kind of programming careers there are and make a choice of which one interests you the most. Then make a decision on what you really need to streamline your learning process. Formal education always helps when applying at Microsoft or Apple but if you don't want to work for a large corporation then you might want to self teach all that you need using books and the web. A formal education will teach you the thinking skills necessary for programming if you don't have the natural ability but make sure you will absolutely need the skills taught before spending the money and the time. If you're a natural and you don't need to be taught then get some books and go for it.
Best of luck to you...
31st Jan 2012
Replies
rpollard:
I agree with you that there is a natural talent the really makes you an excellent programmer vs a plodder. It is the ability to see patterns and to model abstractly what the user wants. In addition having excellent language skills set you above the rest of the pack since I agree that well documented code not only has good comments but the names of functions, variables and programs fit together and make sense. In today's world it seems that too many adults are illiterate and it is no fun working with them or their code.
I agree with you that there is a natural talent the really makes you an excellent programmer vs a plodder. It is the ability to see patterns and to model abstractly what the user wants. In addition having excellent language skills set you above the rest of the pack since I agree that well documented code not only has good comments but the names of functions, variables and programs fit together and make sense. In today's world it seems that too many adults are illiterate and it is no fun working with them or their code.
valchau
31st Jan 2012
-1
Votes
If Java is your first programming language
My advice would be to stop and make Pascal your introduction to programming.
You need to learn things like referencing, iteration, functions, and abstract data types. Wirth designed the language to be safe during implementation of those concepts.
I would stay away from C++ for the same reason I would stay away from Java as your first programming language. They have complicated elements not suited for beginners.
If you want to dive into object based or object oriented programming I would suggest Oberon (an OOP learning system designed by Wirth)
In addition to programming languages you will want to learn tools related to the process. Things like a complier, linker, text editor, revision control and make tool.
There are integrated environments that do this for you but I started with vi, rcs and make in a BSD UNIX environment. Pick those tools for the OS you use.
You need to learn things like referencing, iteration, functions, and abstract data types. Wirth designed the language to be safe during implementation of those concepts.
I would stay away from C++ for the same reason I would stay away from Java as your first programming language. They have complicated elements not suited for beginners.
If you want to dive into object based or object oriented programming I would suggest Oberon (an OOP learning system designed by Wirth)
In addition to programming languages you will want to learn tools related to the process. Things like a complier, linker, text editor, revision control and make tool.
There are integrated environments that do this for you but I started with vi, rcs and make in a BSD UNIX environment. Pick those tools for the OS you use.
Updated - 31st Jan 2012
0
Votes
Well it's not Java, but
I would recommend the Pragmatic Programmer books. http://en.wikipedia.org/wiki/The_Pragmatic_Programmer
1st Feb 2012
-1
Votes
that my study
i have Studied java and c++ and html and java script .in my college
because i'm student in it and computing faculty .
because i'm student in it and computing faculty .
1st Feb 2012
-1
Votes
What to learn before a programming language
Flow Charting. If Then Else means very little to the average person but once you understand how to flowchart it means everything. The computer ismple it's either on or it's off. If you can't concieve how something can work by being nothing more then an on and off switch you can not percieve the logic behind how it should work. Therefore you can't make it work beyond simple things.
1st Feb 2012
2
Votes
Learn the application area!
Before writing "accounts receivable", you need to know at least some accounting; terminology,
procedures, etc. If you are monitoring a nuclear reactor, you need to know some atomic physics!
You need to know algorithms and data structures. Perhaps the most difficult thing you need to
know is how to document what your program does and how it does what it does. If you can't do that or neglect doing it, your program will wind up in the dumpster because it's easier to do
it over again, from the beginning, than it is decipher your program.
procedures, etc. If you are monitoring a nuclear reactor, you need to know some atomic physics!
You need to know algorithms and data structures. Perhaps the most difficult thing you need to
know is how to document what your program does and how it does what it does. If you can't do that or neglect doing it, your program will wind up in the dumpster because it's easier to do
it over again, from the beginning, than it is decipher your program.
1st Feb 2012
Replies
YES I strongly agree here!
valchau
3rd Feb 2012
-1
Votes
Object Oriented and Web Services
Challenge yourself and get up to speed extremely quickly. Although Math and Logic is logical approach but object oriented thinking builds on declarative approach.
Try the first chapter Strategy pattern in the book Head First Design Patterns. It will challenge traditional programming logic. Next, css and html suggests you are looking into web technology. I recommend web services. How to host or consume web service. You will realize how to put the Java logic you have build, separate from html forms and css. Get this and you will be ready for basic interviews, competitive salary and basic!! real world programming.
Try the first chapter Strategy pattern in the book Head First Design Patterns. It will challenge traditional programming logic. Next, css and html suggests you are looking into web technology. I recommend web services. How to host or consume web service. You will realize how to put the Java logic you have build, separate from html forms and css. Get this and you will be ready for basic interviews, competitive salary and basic!! real world programming.
1st Feb 2012
-1
Votes
Books and Advice
Hello,
One big thing most seem to be missing in the advice is the problem solving skills you will need. Flowcharting helps once you can visualize the problem, but it first must be broken down to a series of smaller steps. I use mind-mapping during planning. You can continue to break the problem down until you can visualize the process line by line in code. The smarter programmers can take these abstract steps and wrap them into functions that can be re-used over and over.
I started from scratch learning Java. That being said I already had basic scripting experience in php, html, javascript, and VB.
Java really opened my eyes to the whole OOP perspective. If you are going to write applications for systems, OOP is essential. For smaller web-based apps, you could get away with a procedural language. I prefer php as you can combine OOP and procedural language if you have to (older external libraries use procedural code sometimes).
My first java book which is still my favorite is "Thinking in Java" which is a large book. It covers all aspects and is well written.
I would also recommend all of the Head First books. They are very well written and easy for beginners to follow.
Best of luck, we need more good programmers out there! Don't be lazy!
Rob
One big thing most seem to be missing in the advice is the problem solving skills you will need. Flowcharting helps once you can visualize the problem, but it first must be broken down to a series of smaller steps. I use mind-mapping during planning. You can continue to break the problem down until you can visualize the process line by line in code. The smarter programmers can take these abstract steps and wrap them into functions that can be re-used over and over.
I started from scratch learning Java. That being said I already had basic scripting experience in php, html, javascript, and VB.
Java really opened my eyes to the whole OOP perspective. If you are going to write applications for systems, OOP is essential. For smaller web-based apps, you could get away with a procedural language. I prefer php as you can combine OOP and procedural language if you have to (older external libraries use procedural code sometimes).
My first java book which is still my favorite is "Thinking in Java" which is a large book. It covers all aspects and is well written.
I would also recommend all of the Head First books. They are very well written and easy for beginners to follow.
Best of luck, we need more good programmers out there! Don't be lazy!
Rob
3rd Feb 2012

































