Several here have suggested starting with C, C++, C# or Java. That is one option, but you should know that these languages have rather steep learning curves. Each requires you to learn a lot before you can do much. In the case of C you need to thoroughly understand pointers before you can write meaningful programs and will spend a lot of time debugging which, at a minimum, is discouraging to newcomers. Java requires you spend a lot of time learning its libraries and perhaps 100s of APIs and how they relate before you can write more than just simple programs. All four languages are powerful, but there is, IMO, a smarter way to learn the basics.
Begin by learning data structures and how and when you can use them to good advantage. Learn to program the basic constructs (loops, conditionals, classes, etc) and how to develop algorithms. Integrate those concepts and write a few programs. Use a language that is easy to learn. You don't need to get tripped up early with nuances not related to what you are trying to learn. Numerous books and free tutorials are available.
After mastering the basics it is time to decide in what area(s) you'd like to specialize. What do you envision yourself doing eventually, web development, robotics, financial applications, user interfaces, networking, image processing, cryptography, artificial intelligence, databases, GIS, games, or ??? The list is endless. Learn the languages best suited for that domain.
Personally, I've used 30+ languages over the last 55 years and IHMO, the clear winner is Python. It is easy to learn and your programs will come to life sooner with less effort. At the same time, Python is powerful with rich libraries supporting pretty much anything programming students would want to do. I could go on but the important take-a-way is that while Python is an excellent choice for learning programing concepts and data structures, you need not learn another language to experiment with advanced computer science concepts. Once the basics are under your belt, I would suggest you take the time to become acquainted with C. It will teach most of the other concepts that Python cannot. Between them the world can be your playground.
Learning your toolset is just as important as the languages. Your #1 tool will be your text editor. Find one you are really comfortable with. Learn how to write good comments and documentation. A debugger, an IDE, and a version control system also have their proper place.
After you master the basics you can move into your area of specialty. You should now be well prepared to transition into C, C++, C#, Java, SQL, HTML, JavaScript, PHP, or ??? In fact, some of these languages integrate nicely with Python allowing programs to enjoy the strengths of each.
And remember to come up for air periodically. Some folks forget that.
Simply allowing text helps server loading, but if the cycles are available, allowing selected, whitelisted HTML tags helps readability. The tags that make the whitelist should be benign formatting tags not unlike those allowed by/. (see "Allowed HTML" on the/. comment entry page.)...to which I'd add 'pre', 'font' (only Courier, Helveticia, and Times), and those necessary to support tables of data. It wouldn't hurt to have such a list standardized so it is clear what will and will not be accepted.
A couple of years ago I read some medical research stating the part of the brain used to speak is the exactly the *same* part of the brain we use to think. Unfortunately, that part of the brain does not do both at the same time. In short, thinking and talking are mutually exclusive temporally.
When speaking, you pause sometimes. Why? To think. Ever do any *good* dictation? It is hard (impossible?). Multiple teenagers in a car at the same time is not always a good idea and you can see why. Also, hands-off equipment is a Feel Good solution, but effective? No.
I saw this study 3-5 years ago and failed to keep a copy. If anyone knows of it and can provide a reference, it would be appreciated. Thanks.
You can have fun with this too. Whenever you see a person in continuous talk mode, you *know* they are not thinking....and that includes Politicians.;-)
First, job listings should clearly state primary requirements seperate from nice-to-have requirements and searches should know the difference. For example, search on Perl or Python and you get a bunch of jobs where these are secondary, not the meat and potatoes of the job.
Second, specifying acceptable job locations via pop-down menus with cntl-click to select is a joke. A dialog box with check boxes would be better.
I'd also like to see some way to distinguish between downtown locations and the 'burbs. Use city to designate general location, but give direction and approx distance from downtown. (I for one won't consider an inner city job if pop is 300K+, but would consider outlying or rural areas. The challenge is how to tell.)
All of this dies if the entire job description is freeform text. Designing a 'form' with defined data fields could go a long way to improving things.
I'd like to know why the trained guy left. Perhaps he got trained and started looking for better. Perhaps he sensed a management problem and got what he could before leaving. I doubt he would have done either if he were satisfied. Ask around, maybe some of his old buds will give you a clue.
You are on the scene. Are there other situations that don't smell right?
The fact you are even asking suggests you sense something is wrong. Don't ignore your hunches. Check them out.
Remember that a promotion is really more of a career change. You will be doing different things, administration, budgets, meetings, people stuff... things that may conflict with what you are good at, and perhaps enjoy.
Money is nice, but do reflect on what you really want....and going back is not always easy.
Notice that the successful projects were focused. They did one thing, and they did it well. Quality, cost, and time suffered proportionally with the number of objectives.
Note too that the successful projects had decision makers; decisions were not made by committees.
Success requires continued focus on a well defined goal.
...don't work. Measure what a person can do based on what they have accomplished. Cute questions, so typical of programmer interviews, only show a specific example under the heat of an interview. A different question and likely a different result.
In the real world, reflection is more valuable than a quick answer. Don't attempt to make a hiring decision based on one set of interviews. For final candidates, stretch the preocess and talk to the person several times over a period of days/weeks. Glean keywords. Get to know the person. How they will work together is very important.
...is a CD with no time limit, free for personal, educational, and evaluation purposes. Later, when the product is to be used for profit, I expect to pay a fee. If need be, limit the number of connections or otherwise cripple for production use. But do not limit the functionality... that is why I'm trying to learn and/or evaluate the product.
SPAM and excessive phone calls ARE a problem. Perhaps your company would respect that, but your peers and predecessors have already abused the privilege. Sorry. Just make yourself available by phone and email. Also provide good doc on the web site and CD. Marketing fluff is perhaps necessary, but so is good, solid technical information.
I'm glad you asked, but then my question to you and your peers is, "Will this exercise make any difference?"
I like Python's indentation rules. I didn't at first, but I do now. BUT sharing and modifying code is is often a problem, sorry to say.
What I find a disconcerting is that some folks use 4 spaces and I use a tab set at four spaces. They are not the same and between autoindent and my hitting the tab key, I get some very interesting combinations. Finding the problem can be difficult without a utility.
It gets even more interesting when I get code that assumes tabs of 8, and because that is too much, 4 spaces are used for the intermediate levels....and it is not always obvious that is what's happening.
Can we agree on a convention?...or perhaps some pseudo code for the parser?
I believe the "OS" you are looking for is IBSYS and was popular for many years on the 7040 and 7090. My recollection is that it ran on the 70x (vacuum tube versions).
It used "control cards" (JCL before it was called "JCL") and allowed the first abstraction of physical device addresses by logical addresses. It didn't support multi-programming, that came later.
I kept one of the manuals and it makes interesting reading. We HAVE come a LONG way!
Several here have suggested starting with C, C++, C# or Java. That is one option, but you should know that these languages have rather steep learning curves. Each requires you to learn a lot before you can do much. In the case of C you need to thoroughly understand pointers before you can write meaningful programs and will spend a lot of time debugging which, at a minimum, is discouraging to newcomers. Java requires you spend a lot of time learning its libraries and perhaps 100s of APIs and how they relate before you can write more than just simple programs. All four languages are powerful, but there is, IMO, a smarter way to learn the basics.
Begin by learning data structures and how and when you can use them to good advantage. Learn to program the basic constructs (loops, conditionals, classes, etc) and how to develop algorithms. Integrate those concepts and write a few programs. Use a language that is easy to learn. You don't need to get tripped up early with nuances not related to what you are trying to learn. Numerous books and free tutorials are available.
After mastering the basics it is time to decide in what area(s) you'd like to specialize. What do you envision yourself doing eventually, web development, robotics, financial applications, user interfaces, networking, image processing, cryptography, artificial intelligence, databases, GIS, games, or ??? The list is endless. Learn the languages best suited for that domain.
Personally, I've used 30+ languages over the last 55 years and IHMO, the clear winner is Python. It is easy to learn and your programs will come to life sooner with less effort. At the same time, Python is powerful with rich libraries supporting pretty much anything programming students would want to do. I could go on but the important take-a-way is that while Python is an excellent choice for learning programing concepts and data structures, you need not learn another language to experiment with advanced computer science concepts. Once the basics are under your belt, I would suggest you take the time to become acquainted with C. It will teach most of the other concepts that Python cannot. Between them the world can be your playground.
Learning your toolset is just as important as the languages. Your #1 tool will be your text editor. Find one you are really comfortable with. Learn how to write good comments and documentation. A debugger, an IDE, and a version control system also have their proper place.
After you master the basics you can move into your area of specialty. You should now be well prepared to transition into C, C++, C#, Java, SQL, HTML, JavaScript, PHP, or ??? In fact, some of these languages integrate nicely with Python allowing programs to enjoy the strengths of each.
And remember to come up for air periodically. Some folks forget that.
Simply allowing text helps server loading, but if the cycles are available, allowing selected, whitelisted HTML tags helps readability. The tags that make the whitelist should be benign formatting tags not unlike those allowed by /. (see "Allowed HTML" on the /. comment entry page.) ...to which I'd add 'pre', 'font' (only Courier, Helveticia, and Times), and those necessary to support tables of data. It wouldn't hurt to have such a list standardized so it is clear what will and will not be accepted.
A couple of years ago I read some medical research stating the part of the brain used to speak is the exactly the *same* part of the brain we use to think. Unfortunately, that part of the brain does not do both at the same time. In short, thinking and talking are mutually exclusive temporally.
When speaking, you pause sometimes. Why? To think. Ever do any *good* dictation? It is hard (impossible?). Multiple teenagers in a car at the same time is not always a good idea and you can see why. Also, hands-off equipment is a Feel Good solution, but effective? No.
I saw this study 3-5 years ago and failed to keep a copy. If anyone knows of it and can provide a reference, it would be appreciated. Thanks.
You can have fun with this too. Whenever you see a person in continuous talk mode, you *know* they are not thinking. ...and that includes Politicians. ;-)
First, job listings should clearly state primary requirements seperate from nice-to-have requirements and searches should know the difference. For example, search on Perl or Python and you get a bunch of jobs where these are secondary, not the meat and potatoes of the job.
Second, specifying acceptable job locations via pop-down menus with cntl-click to select is a joke. A dialog box with check boxes would be better.
I'd also like to see some way to distinguish between downtown locations and the 'burbs. Use city to designate general location, but give direction and approx distance from downtown. (I for one won't consider an inner city job if pop is 300K+, but would consider outlying or rural areas. The challenge is how to tell.)
All of this dies if the entire job description is freeform text. Designing a 'form' with defined data fields could go a long way to improving things.
An opinion of one....
Many jbs today can be
I'd like to know why the trained guy left. Perhaps he got trained and started looking for better. Perhaps he sensed a management problem and got what he could before leaving. I doubt he would have done either if he were satisfied. Ask around, maybe some of his old buds will give you a clue.
You are on the scene. Are there other situations that don't smell right?
The fact you are even asking suggests you sense something is wrong. Don't ignore your hunches. Check them out.
Remember that a promotion is really more of a career change. You will be doing different things, administration, budgets, meetings, people stuff... things that may conflict with what you are good at, and perhaps enjoy.
...and going back is not always easy.
Money is nice, but do reflect on what you really want.
"sharp", "hash"...
# is also "pound". Go where you will.
How does it do under Psyco? Could you post your code? I'd like to try psyco on it.
Notice that the successful projects were focused. They did one thing, and they did it well. Quality, cost, and time suffered proportionally with the number of objectives.
Note too that the successful projects had decision makers; decisions were not made by committees.
Success requires continued focus on a well defined goal.
The auto industry is required to make parts available for 10 years past the model year. Makes sense.
Why not apply the same rule to software security fixes? Sure would do a lot to motivate better design.
Remember all those good words about how NT5, now Windows 2000, with its Advanced Security and Kerberos was going to make things secure?
Paid the money, didn't ya?
Wanna pay again?
...don't work. Measure what a person can do based on what they have accomplished. Cute questions, so typical of programmer interviews, only show a specific example under the heat of an interview. A different question and likely a different result.
In the real world, reflection is more valuable than a quick answer. Don't attempt to make a hiring decision based on one set of interviews. For final candidates, stretch the preocess and talk to the person several times over a period of days/weeks. Glean keywords. Get to know the person. How they will work together is very important.
...is a CD with no time limit, free for personal, educational, and evaluation purposes. Later, when the product is to be used for profit, I expect to pay a fee. If need be, limit the number of connections or otherwise cripple for production use. But do not limit the functionality... that is why I'm trying to learn and/or evaluate the product.
SPAM and excessive phone calls ARE a problem. Perhaps your company would respect that, but your peers and predecessors have already abused the privilege. Sorry. Just make yourself available by phone and email. Also provide good doc on the web site and CD. Marketing fluff is perhaps necessary, but so is good, solid technical information.
I'm glad you asked, but then my question to you and your peers is, "Will this exercise make any difference?"
I like Python's indentation rules. I didn't at first, but I do now. BUT sharing and modifying code is is often a problem, sorry to say.
...and it is not always obvious that is what's happening.
...or perhaps some pseudo code for the parser?
What I find a disconcerting is that some folks use 4 spaces and I use a tab set at four spaces. They are not the same and between autoindent and my hitting the tab key, I get some very interesting combinations. Finding the problem can be difficult without a utility.
It gets even more interesting when I get code that assumes tabs of 8, and because that is too much, 4 spaces are used for the intermediate levels.
Can we agree on a convention?
It appears Apple's store site has been kaput all morning except for a couple of very brief periods... 1-2 minutes. If you were quick... VERY quick....
Either the demand is very high... or...
I believe the "OS" you are looking for is IBSYS and was popular for many years on the 7040 and 7090. My recollection is that it ran on the 70x (vacuum tube versions).
It used "control cards" (JCL before it was called "JCL") and allowed the first abstraction of physical device addresses by logical addresses. It didn't support multi-programming, that came later.
I kept one of the manuals and it makes interesting reading. We HAVE come a LONG way!
Cheers