Questions

what should learning before programming ?

Tags:
+
0 Votes
Locked

what should learning before programming ?

heshesh2010
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 ?
  • +
    7 Votes
    TheChas

    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

    +
    3 Votes
    dogknees

    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

    +
    1 Votes
    andrew232006

    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.

    +
    6 Votes
    charleswdavis6670

    If there is no command of a written language, you'll never develop computer languages.

    +
    0 Votes
    valchau

    I would agree with you.

    +
    0 Votes
    marcedhk

    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....

    +
    0 Votes
    pfisher2k

    rude...pompous

    +
    4 Votes
    john.a.wills

    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.

    +
    0 Votes
    heshesh2010

    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.

    +
    0 Votes
    john.a.wills

    Your English is not as good as you think, but Dijkstra's point was about your native language. How good is your Arabic?

    +
    0 Votes
    Charles Bundy

    To john.a.wills

    Ask him in Arabic if you really want to make the point.

    +
    0 Votes
    mperata

    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.

    +
    0 Votes
    heshesh2010

    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.

    +
    0 Votes
    marcedhk

    @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.

    +
    3 Votes
    Slayer_

    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.

    +
    0 Votes
    valchau

    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.

    +
    2 Votes
    Puscifer222

    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?

    +
    2 Votes

    Lol

    trolololo

    is thing called a grammaring, you how to grammar should learning.

    +
    0 Votes
    heshesh2010

    what do you mean ?

    +
    0 Votes
    jb@sal

    Good advice for any programmer, this is. Herh herh herh.

    +
    0 Votes
    valchau

    LOL!! CORRECT!

    +
    0 Votes
    heshesh2010

    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 .

    +
    0 Votes
    valchau

    nothing will make you perfect other than experience actually doing the work in a job.

    +
    3 Votes
    MargaretlBartley

    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.

    +
    0 Votes
    valchau

    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.

    +
    0 Votes
    Slayer_

    You also need to be able to filter out your own jargon, without dumbing it down too much that it offends the other person.

  • +
    7 Votes
    TheChas

    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

    +
    3 Votes
    dogknees

    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

    +
    1 Votes
    andrew232006

    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.

    +
    6 Votes
    charleswdavis6670

    If there is no command of a written language, you'll never develop computer languages.

    +
    0 Votes
    valchau

    I would agree with you.

    +
    0 Votes
    marcedhk

    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....

    +
    0 Votes
    pfisher2k

    rude...pompous

    +
    4 Votes
    john.a.wills

    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.

    +
    0 Votes
    heshesh2010

    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.

    +
    0 Votes
    john.a.wills

    Your English is not as good as you think, but Dijkstra's point was about your native language. How good is your Arabic?

    +
    0 Votes
    Charles Bundy

    To john.a.wills

    Ask him in Arabic if you really want to make the point.

    +
    0 Votes
    mperata

    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.

    +
    0 Votes
    heshesh2010

    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.

    +
    0 Votes
    marcedhk

    @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.

    +
    3 Votes
    Slayer_

    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.

    +
    0 Votes
    valchau

    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.

    +
    2 Votes
    Puscifer222

    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?

    +
    2 Votes

    Lol

    trolololo

    is thing called a grammaring, you how to grammar should learning.

    +
    0 Votes
    heshesh2010

    what do you mean ?

    +
    0 Votes
    jb@sal

    Good advice for any programmer, this is. Herh herh herh.

    +
    0 Votes
    valchau

    LOL!! CORRECT!

    +
    0 Votes
    heshesh2010

    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 .

    +
    0 Votes
    valchau

    nothing will make you perfect other than experience actually doing the work in a job.

    +
    3 Votes
    MargaretlBartley

    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.

    +
    0 Votes
    valchau

    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.

    +
    0 Votes
    Slayer_

    You also need to be able to filter out your own jargon, without dumbing it down too much that it offends the other person.