[Beowulf] What can a HS student do with a small Beowulf?
Many of your questions may have already been answered in earlier discussions or in the FAQ. The search results page will indicate current discussions as well as past list serves, articles, and papers.
Robert G. Brown rgb at phy.duke.eduWed May 24 06:57:41 PDT 2006
- Previous message: [Beowulf] What can a HS student do with a small Beowulf?
- Next message: [Beowulf] What can a HS student do with a small Beowulf?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, 24 May 2006, John Hearns wrote: > On Tue, 2006-05-23 at 15:52 -0400, Todd Patton wrote: >> Is it the norm for the list that the cluster manager, >> administrator, builder, programmer, and user roles are played by the >> same person(s)? Should a high chool student that really wants to pursue >> a career in computational clusters follow a programming path in computer >> science or major in engineering or science, - with a minor in computer >> science? > > Heck no. Go to college (university) and do something that INTERESTS you. > If Kyle wants to do comp sci, and it interests him, go ahead. > Make sure to keep up with the maths and physics courses, and take any > options you can related to scientific applications of computers. > If you get the chance to do a summer placement (etc.) try to get one in > a relevant lab or industry which is using computers to do simulations. > Then fresh out of college you can aim for an interesting job. > Remember than most of us these days change career track over our > lifetimes. You may find some unexpected field which takes your interest > while at college (and that's partly why we go there). As a premajor advisor at Duke who regularly advises entering freshmen and sophomores, let me heartily concur with John -- his advice is dead on the money and if he ever gets bored with computers there is a second career waiting for him in academic advising (only it doesn't pay so well;-). > And as regards 'majors', one of the best programmers I know originally > started in linguistics. He now works for Redhat - and was actively > recruited by them. > So I'll reiterate - follow your heart at college. Your enthusiasm for > computing will show through. > > I agree though - most of the people on this list, and people I work > with, are physical science types who converted to being computer > acolytes after graduation. Pure comp sci types get too involved with > programming Haskell (whatever the heck that is). > So yes Kyle, take Comp Sci if you must, but resist the snake oil of > the Pascal programmers. Go over and hang out with the engineering geeks. > Remember, real programmers don't eat quiche. > http://www.pbm.com/~lindahl/real.programmers.html Two other useful, nay, critical links: http://www.phy.duke.edu/~rgb/General/tao/tao.html (The Tao of Programming) and: http://www.phy.duke.edu/~rgb/Beowulf/c++_interview/c++_interview.html (C++: Is it Really a Cruel Joke?). In addition it is critical to not listen to the siren song of the C++ fiends, who will pull you into the doom of structured programming every bit as much as Pascal. Note that C wasn't as well known back when the real.programmers article was written, but that it also has all the characteristics of a proper language, especially the ability to either work unbelievable magic manipulating pointers in complex and even arcane ways without the tedium of Fortran EQUIVALENCE statements and to break the holy hell out of your code without so much as a whimper from any sort of compiler-based type checking system. It also makes it easy to inline assembler and hence render your program absolutely unintelligible to the vast majority of quiche-eating coders that might otherwise be viewed by management as fit candidates for your job (and they might be looking after your desk is condemned as a health hazard due to the large number of twinkie-eating cockroaches it harbors). C therefore has the essential earmark of a good language for identifying Real Programmers -- it is easy to write completely obfuscated code that will never be understood by another human on the planet but which nevertheless actually works. C programmers are hence a valuable resource and are often considered "irreplaceable" by management in spite of their generally poor hygiene and "bad attitude towards superiors". More seriously, my personal experience both learning to code and teaching a number of students programming and systems administration over the decades closely mirrors the sort of process John describes and recommends. I took precisely three computer science courses as an undergraduate -- basic/introductory programming (assembler and PLC on cards/IBM mainframes), microarchitecture (writing a machine emulator, an assembler emulator on top of the machine emulator, and a compiler emulator IN our assembler emulator, all PL/1 with cards on IBM mainframe), and numerical programming (in Fortran). Now I am (in all humility:-) an uberprogrammer, pro-grade systems/network administrator/engineer, writer about same in many venues, and even teach computing at various levels all without any further courses or professional certification. I love to code, therefore I code. If I need to learn something to code, I learn it. To my direct experience, MOST serious computer geeks are born that way, not created by formal educational experience. As in the important thing for them to do is to take at least ONE serious course in programming, ideally in a non-quiche eating language (seriously!). The ones born to it immediately think that it is the coolest thing that they've ever done in their whole lives and develop an overnight tendency to stay UP all night drinking Jolt cola (specially imported from California by the case) and writing code, let their hair grow all lanky and unwashed and just pull it back into a pony tail because barbershops are all closed during the hours that they are awake, and exhibit a strange tendency toward carrying many pens in their shirt pockets and ending up with inkstains thereupon until they finally buy plastic protectors and -- their transformation is complete. (Just kidding, about at least part of this, but >>which<< part? Hmmmm:-) Seriously, among my many colleagues who are professional systems people, cluster people, coders, and so on, CPS majors per se are nearly the exception rather than the rule. Physics, chemistry, math, history and english majors are all represented, the first three probably MORE so than CPS majors. Computing is fun when you have cool stuff to do with the skill, if you have nifty programs you want to write, and these days moreso than ever before in history you can learn on your own. Linux is the world's premier program development platform, providing you with world-class code development tools absolutely for free. Even more important, it provides you with the world's biggest code sandbox -- the entire shebang available in source, with many projects crying out for participation. The Internet is the world's largest and most complete coding textbook at this point, with dozens of COMPLETE reference manuals and online textbooks on programming and general computing in all sorts of languages and styles. I have at least three complete books on C programming on my laptop (all free, all obtained directly from the internet, for example, the biggest and best of them over 1000 pages long and absolutely amazingly complete). So my own personal advice to somebody that likes this sort of thing (and is hence self-selected as a possible/probable future coder/geek, be it in cluster computing or in some form of computing yet to be invented) is -- install linux on two or more boxes at home, on a local network. Now chant: "TCP, let it be, a cluster, a cluster, 1-2-3" and poof, it is a cluster. [Seriously -- this is a little known fact -- that all modern network-based clusters are in actually created by means of this secret magic ritual, first developed by Dongarra et. al. and passed down from guru to chela in a ritual involving, for some little-understood reason, a horned goat, a raw egg, and a bottle of very dry vermouth.] Then sit down at said cluster and LEARN. Learning in computing these days basically involves Reading The F***ing Manual (RTFM), and linux provides ALL the manuals and documentation, available right there either on-system, available online, or both. Read man pages, HOWTOs, online texts. Join mailing lists. Buy a few books on (linux/unix) systems administration, on systems programming, on parallel programming, on numerical methods (I'd be happy to make recommendations -- again -- or you can find them in a search of the list archives). GIYF (Google Is Your Friend) -- with it you can find just about ANYTHING with a bit of effort. Wikipedia too -- it is well on its way to becoming the Universal Textbook on Everything. Pick a project or create one of your own and start writing code. glade-2 makes writing pretty GUI programs pretty simple, and GTK+ is thoroughly documented online and in a variety of books. Write a program to tally the frequency of occurrences of all the letters in input prose documents or the online dictionary. Write a program to compute the days Easter will fall on for the next 500 years or so. Write a program to play tic-tac-toe in a simple GUI with you. Write a web-application in PHP that accesses a mysql or postgres DB to track your personal OGG collection and deliver them to YOUR player from anywhere you happen to be on the network, securely (bidirectionally encrypted traffic, sound personal authentication). Write a program to crack and decrypt this traffic -- heh heh -- and steal your own music in transit. Learn RIGHT AWAY how to use version control and use it to track EVERYTHING YOU EVER WRITE -- CVS is OK but I'm in the process of converting to Subversion and it is probably a slightly better choice for somebody just starting with version control to get started with. Do all of this for the fun of it, not as part of a course. Actually TAKE courses (and end up majoring) in whatever you LIKE in college, subject to the distributional requirements of the school. Sure, maybe that will turn out to be CPS. Maybe it will turn out to be Mandarin Chinese, or political science, or physics, or art history, or philosophy. Geek or not, go to a liberal arts school, not engineering school as the best geeks are not narrow intellectually, they are broad, and (sorry to any engineers on list:-) engineering school actively discourages the electives required to produce a well-rounded education by basically leaving you with almost no time to indulge in them. Believe me, a physics or math major (or double major in both) can match any engineer in technical skills BUT they are also REQUIRED (at Duke, at least) to take courses in history, philosophy, english, foreign languages, sociology, psychology, drama -- subjects that teach one to communicate, to relate to other humans and understand the human condition, to work well in social groups -- all things that IMPROVE one's prospects for a satisfying life and associated career(s). As I said, John's advice is dead on the money. The happiest people in the world are those for whom every day of going to work is really going to play -- they love to do what they do to make a living. Coders who love to code. Cooks who love to cook. Teachers who love to teach. Politicians who love to lie, cheat, accept bribes, and control the lives of others while basking in the warm glow of the public eye. [Just kidding about at least part of that, but again, which part -- or which politicians?;-)] So decide what you LIKE in college and then MAJOR in it so you can have FUN going to class, doing homework and all that. Remember too that learning is all about learning to learn on your own -- you don't have to take courses in something to learn it, and the earlier you learn THIS the more successful you'll be. Ultimately ubercoding is something that can be learned on your own, or with only a bit of a push-start from some judiciously selected classes. There are many other subjects like this as well and it has never been easier to do deep learning of nearly anything on your own. Along the way SOME subject, though, will attract your interest and really REQUIRE a lot of classes -- with great teachers -- to get you well underway. It may be complex and engrossing enough to keep you in school through graduate school and beyond. Might be CPS, might not -- only way to find out is to take a few courses and try it out. rgb > > > > > > _______________________________________________ > Beowulf mailing list, Beowulf at beowulf.org > To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf > -- Robert G. Brown http://www.phy.duke.edu/~rgb/ Duke University Dept. of Physics, Box 90305 Durham, N.C. 27708-0305 Phone: 1-919-660-2567 Fax: 919-660-2525 email:rgb at phy.duke.edu
- Previous message: [Beowulf] What can a HS student do with a small Beowulf?
- Next message: [Beowulf] What can a HS student do with a small Beowulf?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Beowulf mailing list
