what should learning before programming ?
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 ?
Software
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 ?
by heshesh2010 Accepted solution
by thechas Accepted solution
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
by dogknees Accepted solution
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
by andrew232006 Accepted solution
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.
by charleswdavis6670 Accepted solution
by valchau Accepted solution
by marcedhk Accepted solution
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....
by pfisher2k Accepted solution
by john.a.wills Accepted solution
by heshesh2010 Accepted solution
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.
by john.a.wills Accepted solution
by charles bundy Accepted solution
To john.a.wills
Ask him in Arabic if you really want to make the point.
by mperata Accepted solution
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.
by heshesh2010 Accepted solution
by marcedhk Accepted solution
@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.
by slayer_ Accepted solution
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.
by valchau Accepted solution
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.
by puscifer222 Accepted solution
by trolololo Accepted solution
by heshesh2010 Accepted solution
by Member 28021179 Accepted solution
by valchau Accepted solution
by heshesh2010 Accepted solution
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 .
by valchau Accepted solution
by margaretlbartley Accepted solution
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.
by valchau Accepted solution
by slayer_ Accepted solution
by rpollard1 Accepted solution
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...
by valchau Accepted solution
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.
by charles bundy Accepted solution
My advice would be to stop and make [b]Pascal[/b] 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 [b]Oberon[/b] (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 [b]vi, rcs[/b] and [b]make[/b] in a BSD UNIX environment. Pick those tools for the OS you use.
by plynch49 Accepted solution
by heshesh2010 Accepted solution
i have Studied java and c++ and html and java script .in my college
because i'm student in it and computing faculty .
by mitchstein443 Accepted solution
by draco vulgaris Accepted solution
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.
by valchau Accepted solution
by fcchan Accepted solution
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.
by robnauticus Accepted solution
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
This discussion is closed to new replies.
Sort by Trending