This is not exactly the same, but here's my story.
After school I started out doing tech support for 2 years (I stupidly did not do any internships). From the beginning, I made my goals clear - I wanted to become a software developer. They held an R&D carrot out in front due to my CS degree, but at the time I just figured that the job was a short term arrangement.
Because of turnover, there was an immediate opportunity for becoming a Tier II engineer after 3 months. Even though it only meant a $1 an hour raise, I took it.
Between the 3 month mark and a year, I was providing senior support, writing relevant Python scripts in my free time, initiating an internal documentation project, and keeping the VP of Engineering aware of what I was doing.
At 1 year I was promised a coveted spot in R&D as a developer. Unfortunately this is where turnover bites you in the ass - I spent a year waiting for the transition to complete.
I spent about half a year in R&D before I moved on to my next job as a Software Engineer. The last promotion to R&D was the spring board I needed. It was a HUGE confidence boost - I didn't feel like I was a fraud when interviewing for other positions. I landed my next job on my third try.
When I do interviews, tech support experience is an instant plus. But it's more important to show that you exhibited some initiative or ability to grow in your position.
Since you were a student when you were working in support, you will probably have to write it off as not being the type of "internship" experience that the bigger companies are looking for. Try to target smaller companies. You will have to lower your salary expectations and focus on just getting your foot in the door for your industry. After a year or two of working, your academic experience becomes less important.
I just left a company (unfortunately) that had lunch catered daily, stocked drinks, had a heavily-used foosball table, and (un)officially had flex time among many other benefits. This company happens to be a market leader with no debt and VERY profitable revenue stream.
The company was fortunate to have certain events happen at opportune times, but the benefits were needed to lure a skilled workforce into joining the team. Cuil will probably fall flat, but the "excesses" are warranted IMO.
:-( If I didn't have to relocate, I would never have left.
What is your concept of type safety? Declaring types for variables sure as hell doesn't guarantee the validity of the memory contents in languages like C/C++ (defeated all the time with casting!). My guess is that your objection is to dynamic typing - a concept separate from strong typing. Duck typing supports a different philosophy for development - you should program to an interface rather than to a type. It promotes the same benefit of algorithm reuse as you would get from C++ templates and Java generics.
the possibility to write unreadable code
The next argument I could conceive is whether it is more beneficial to perform static or runtime analysis. Pushing decisions to runtime allows reflection, language constructs treated as first-class objects, and other features that are WAAAAAYYY more meta than anything you get out of the box from C++ and Java. That means you have concise and elegant syntax for expressing higher order concepts and abstractions. This in turn means that you will generally have highly readable code that has less boilerplate and more problem-solving code.
the possibility to write unreadable code, hunt for bugs that are caused because two files are incompatible. Interpreting languages has been tried before, and they are never working for large projects that shall live for a long time and has to be maintained by a lot of different programmers.
I would be interested in case studies on the success, or lack thereof, of dynamic languages in large projects. I certainly have a success story of my own in what I would regard a medium-sized project. I think other factors (performance, programmer skill, etc.) limit the uptake of dynamic languages in areas traditionally dominated by static languages.
Yes, I am partial to root beer and grape scents.:-)
mollymoo answered more eloquently than I could ever have. The GGP post made no claims countering the argument on readability and then made an empty and unrelated argument about Python only having half-assed support for various paradigms.
On the topic of readability, I would add though that Python does not force people to write readable code...it "gently encourages" by encoding a simple whitespace idiom into its specification. There are ways to defeat the readability (escape characters and whatnot).
for i in xrange( 2000000000 ):
dosomething(i)
(Don't forget the optional stepping and start arguments!)
With the caveat that the xrange arguments must fit in a native C long. (Should have said 3 billion!) In Python 3000, xrange will become the new range. Hopefully it will be without the current storage limitation.
A better gripe would be that you can't take advantage of overloaded arithmetic operators as you can in C++ for loops. But isn't that a good thing?
So your point is that you use shitty programs, maintain shitty code, and work with shitty programmers? How does that translate to being a problem with the language?
"That's just fine with UCAR's Frederick. He installed a separate network on servers that connect to the Coraid backup device."
How is AoE cheaper? If you care about your storage infrastructure, then be prepared to spend some money and effort (dedicated SAN networks are always good!).
If they want to penny pinch, then use software-based intiators and targets. The target software will generally let you us any type of disk storage regardless of its native interface (ATA, SATA, SCSI, FC, they're all good!). If performance is an issue, forgo the expensive TOE NICs and use normal gigabit NICs. Setup the NIC driver so that interrupt coalescing is disabled and use >=9000 MTU ethernet frames. Be prepared to pay the price with extra CPU cycles though...
See:
http://www.sun.com/emrkt/rejected/index.html
For a while, they also had purported "rejected" ads that spoke of Dell sucking and Sun kicking ass (though I can't remember the exact wording).
In a consumer-oriented sense, there really is no more reason to bash Maxtor than WD, etc.
But I know that we have not as much luck with the IDE line in a RAID chassis. I'm not sure if it is because they aren't sufficiently able to handle the level of vibration in such an environment or if we just had a bad batch (on order of > 1000). I do know that we have had more luck with WDs and have not had nearly the same failure rate with SATA WD and Hitachis.
FORTRAN 77 was my first programming language. I learned it during a high school mentorship program at NASA LaRC. I remember the coworkers of my mentor stating "Wow, you really hate this kid!"
corrupt my database beyond repair. I don't know about you guys, but my experience with Ingres on Linux has not been fun. Ingres is packaged with Arcserve for all database needs. It unfortunately has an uncanny knack for dying repeatedly regardless of regular pruning of old entries and applying extensions (recommended by CA). It seems that extending the database only prolongs the inevitable.
Is this only a Linux thing? Does the problem exist on other platforms? CA could only recommend workarounds.
Why not dish out TLD's by country (move American.com's to.com.us or something) and then just have the individual countries handle dishing out the domains? Then move ICANN to the UN or any other international organization.
AND/OR use relative addressing. This could be odd to implement.. but the idea is the same as using a telephone. If you're within the UK then blah.com will take you to blah.com.uk. It's no different then how we have to type out blah.co.uk from the US anyway.
Eh.. I think you're wrong on the matter that large states vs. small states is no longer an issue. It was this same principle that established our 2 branches of legislature. With all the pork barrel projects tossed into every conceivable piece of legislation do you think Delaware has the same leverage as California? Same idea with the electoral college. Our federal government is supposed to try to balance the power b/w the states. In the case of Bush vs. Gore it seemed to be an issue of Rural vs. Pouplous states (an oversimplification of course)
The problem isn't going to be solved by giving low-level CS students a license to cheat. The reason why so many CS students end up copying is that the professors either are incompetent or don't present the material in a stimulating or relevant way. As a frosh I got burned on a homework assignment for a UNIX course along with about 100 others because the professor just plain sucked.
An interesting thing to bring up though is the issue of collaboration. There should be higher level courses to build skills in working team-based projects, but at my school you're pretty much on your own all 4 years. It's funny since they require us to take classes on how to interact with other people instead of having collaborative projects.
This is not exactly the same, but here's my story.
After school I started out doing tech support for 2 years (I stupidly did not do any internships). From the beginning, I made my goals clear - I wanted to become a software developer. They held an R&D carrot out in front due to my CS degree, but at the time I just figured that the job was a short term arrangement.
Because of turnover, there was an immediate opportunity for becoming a Tier II engineer after 3 months. Even though it only meant a $1 an hour raise, I took it.
Between the 3 month mark and a year, I was providing senior support, writing relevant Python scripts in my free time, initiating an internal documentation project, and keeping the VP of Engineering aware of what I was doing.
At 1 year I was promised a coveted spot in R&D as a developer. Unfortunately this is where turnover bites you in the ass - I spent a year waiting for the transition to complete.
I spent about half a year in R&D before I moved on to my next job as a Software Engineer. The last promotion to R&D was the spring board I needed. It was a HUGE confidence boost - I didn't feel like I was a fraud when interviewing for other positions. I landed my next job on my third try.
When I do interviews, tech support experience is an instant plus. But it's more important to show that you exhibited some initiative or ability to grow in your position.
Since you were a student when you were working in support, you will probably have to write it off as not being the type of "internship" experience that the bigger companies are looking for. Try to target smaller companies. You will have to lower your salary expectations and focus on just getting your foot in the door for your industry. After a year or two of working, your academic experience becomes less important.
What, no Amazon link??
Oooh! I raise you an unholy combination of OpenWatcom and STLPort that barely works together for DOS targets.
I just left a company (unfortunately) that had lunch catered daily, stocked drinks, had a heavily-used foosball table, and (un)officially had flex time among many other benefits. This company happens to be a market leader with no debt and VERY profitable revenue stream.
The company was fortunate to have certain events happen at opportune times, but the benefits were needed to lure a skilled workforce into joining the team. Cuil will probably fall flat, but the "excesses" are warranted IMO.
:-( If I didn't have to relocate, I would never have left.
What is your concept of type safety? Declaring types for variables sure as hell doesn't guarantee the validity of the memory contents in languages like C/C++ (defeated all the time with casting!). My guess is that your objection is to dynamic typing - a concept separate from strong typing. Duck typing supports a different philosophy for development - you should program to an interface rather than to a type. It promotes the same benefit of algorithm reuse as you would get from C++ templates and Java generics.
the possibility to write unreadable codeThe next argument I could conceive is whether it is more beneficial to perform static or runtime analysis. Pushing decisions to runtime allows reflection, language constructs treated as first-class objects, and other features that are WAAAAAYYY more meta than anything you get out of the box from C++ and Java. That means you have concise and elegant syntax for expressing higher order concepts and abstractions. This in turn means that you will generally have highly readable code that has less boilerplate and more problem-solving code.
the possibility to write unreadable code, hunt for bugs that are caused because two files are incompatible. Interpreting languages has been tried before, and they are never working for large projects that shall live for a long time and has to be maintained by a lot of different programmers.I would be interested in case studies on the success, or lack thereof, of dynamic languages in large projects. I certainly have a success story of my own in what I would regard a medium-sized project. I think other factors (performance, programmer skill, etc.) limit the uptake of dynamic languages in areas traditionally dominated by static languages.
Yes, I am partial to root beer and grape scents. :-)
mollymoo answered more eloquently than I could ever have. The GGP post made no claims countering the argument on readability and then made an empty and unrelated argument about Python only having half-assed support for various paradigms.
On the topic of readability, I would add though that Python does not force people to write readable code...it "gently encourages" by encoding a simple whitespace idiom into its specification. There are ways to defeat the readability (escape characters and whatnot).
for i in xrange( 2000000000 ): dosomething(i) (Don't forget the optional stepping and start arguments!) With the caveat that the xrange arguments must fit in a native C long. (Should have said 3 billion!) In Python 3000, xrange will become the new range. Hopefully it will be without the current storage limitation. A better gripe would be that you can't take advantage of overloaded arithmetic operators as you can in C++ for loops. But isn't that a good thing?
So your point is that you use shitty programs, maintain shitty code, and work with shitty programmers? How does that translate to being a problem with the language?
rm -rf would change your opinion pretty quickly :-)
It looks like someone was already on top of that! http://en.wikipedia.org/wiki/Tuttle%2C_Oklahoma
republishing a story from the Onion. http://slashdot.org/articles/02/06/07/1829212.shtm l
Too bad the Reuters link is no longer valid.
See: http://www.sun.com/emrkt/rejected/index.html For a while, they also had purported "rejected" ads that spoke of Dell sucking and Sun kicking ass (though I can't remember the exact wording).
In a consumer-oriented sense, there really is no more reason to bash Maxtor than WD, etc. But I know that we have not as much luck with the IDE line in a RAID chassis. I'm not sure if it is because they aren't sufficiently able to handle the level of vibration in such an environment or if we just had a bad batch (on order of > 1000). I do know that we have had more luck with WDs and have not had nearly the same failure rate with SATA WD and Hitachis.
FORTRAN 77 was my first programming language. I learned it during a high school mentorship program at NASA LaRC. I remember the coworkers of my mentor stating "Wow, you really hate this kid!"
corrupt my database beyond repair. I don't know about you guys, but my experience with Ingres on Linux has not been fun. Ingres is packaged with Arcserve for all database needs. It unfortunately has an uncanny knack for dying repeatedly regardless of regular pruning of old entries and applying extensions (recommended by CA). It seems that extending the database only prolongs the inevitable. Is this only a Linux thing? Does the problem exist on other platforms? CA could only recommend workarounds.
Why not dish out TLD's by country (move American .com's to .com.us or something) and then just have the individual countries handle dishing out the domains? Then move ICANN to the UN or any other international organization.
AND/OR use relative addressing. This could be odd to implement.. but the idea is the same as using a telephone. If you're within the UK then blah.com will take you to blah.com.uk. It's no different then how we have to type out blah.co.uk from the US anyway.
Eh.. I think you're wrong on the matter that large states vs. small states is no longer an issue. It was this same principle that established our 2 branches of legislature. With all the pork barrel projects tossed into every conceivable piece of legislation do you think Delaware has the same leverage as California? Same idea with the electoral college. Our federal government is supposed to try to balance the power b/w the states. In the case of Bush vs. Gore it seemed to be an issue of Rural vs. Pouplous states (an oversimplification of course)
The problem isn't going to be solved by giving low-level CS students a license to cheat. The reason why so many CS students end up copying is that the professors either are incompetent or don't present the material in a stimulating or relevant way. As a frosh I got burned on a homework assignment for a UNIX course along with about 100 others because the professor just plain sucked.
An interesting thing to bring up though is the issue of collaboration. There should be higher level courses to build skills in working team-based projects, but at my school you're pretty much on your own all 4 years. It's funny since they require us to take classes on how to interact with other people instead of having collaborative projects.