Domain: projecteuler.net
Stories and comments across the archive that link to projecteuler.net.
Comments · 36
-
Re:They're furniture
Things are much the same now - there are so many things that computers can do, it's hard to actually see them as new or interesting and they are completely un-understandable for a developing mind.
Computers themselves are boring in this way, but there's an infinity of things that get really exciting when you apply computers to them. To me, some of the biggest things are music and math.
After playing in a youth orchestra for a couple of years, one of the fellow musicians introduced me to music trackers (this was in the early 90s). Suddenly I could make entire pieces myself, rather than just playing one voice in a huge band. I've ended up composing entire musical plays in the past years.
As for math, I've always been interested in it, but I ended up with a more applied-science career due to a number of other interests. About a decade ago, I was stuck for a couple of summer months with nothing to do, and I discovered Project Euler. I regained some early interest in pure math, and eventually I went back to the university for its math department. I completed all the coursework for a secondary Master's degree, but in another twist of fate I never finished my thesis. From a course of fractal geometry, I got lost into doing math art, and got myself a publication which kind of makes it up for the thesis. I continue to make this into another career, which would never have been possible without applying computers to the math problems.
So I have these two wonderful "art" things going on, all thanks to these nerdy and completely non-artsy computers. But more generally, thanks to a few different disciplines put together. I also work with a playwright/director who has a background in a few natural sciences besides a few arts, and it shows compared to those writers that only went to art school.
-
Project Euler
I see a ton of comments here from people that clearly don't understand what functional programming is, or they don't really get it. If you consider yourself a programmer, go to Project Euler and do the first 20 (or 50) problems. Use whatever language you like. You have to do them, because you need to solve them to see all the other solutions.
Look at the solutions, in all the different languages, and compare. Not just for speed, but the design. Take a good look. -
Re:Focus on a few key things
Is there an implicit "for cheap" at the end there?
No. When we make an offer, it is almost never rejected as being "too low". In fact, it is seldom rejected at all. We just don't get enough qualified applicants (CS degrees AND actually able to write code (the first does not imply the second)). This is in San Jose, California.
Because lots of old guys are frequently bellyaching here about how after age 40/50 they can't get any work
By the time someone is 40-50, they should have a broad skillset, and a deep network of former colleagues. The old guys whining about being unable to find a job are mostly turds that have serially rejected and their former co-workers are glad to be rid of them. There are a LOT of people like that out there. These are the guys you remember from college who wanted to copy your assignment an hour before it was due, because they had no idea how to do it themselves, the dead weight on your programming team, and now they are old.
(and one presumes they know the ropes by then).
That is a really bad presumption. I give every interviewee a random problem from ProjectEuler. I am amazed at 40-50 year old "professional programmers" that can't come up with a solution. My 14 year old daughter has done over 100 of them, typically in about 20 minutes each.
-
no goal = no point
Even for the intelligent, gaining any kind of skill at all requires effort sustained over a lot of time. Being an introvert and obsessive helps to do it for its own sake.
If you don't have those qualities, you need to have a really good reason to learn, a strong motivator with a clear goal. Without that, you're wasting your time.
That being said... here is the tool I universally recommend to beginners and experts alike, to learn a new programming language.
Pick your poison, start at problem 1, and work your way up.
Oh and for god's sake, don't use C. -
Project Euler and VS
-
Re:Aren't these really math challenges?
This. The problem looks like it could be straight from Project Euler.
-
Re:Great experienceThey asked me a bunch of graph theory / number theory problems, if you didn't know the algorithms and could implement them quickly you'd be SoL.
For me programming challenges were my way to get a foot in the door without a degree. I remember getting interviews from Google after their first Code Jam. And facebook after I solved a bunch of programming puzzles they released. But topcoder was my real salvation from my parent's basement.
Even though I have a career now, I find solving them lots of fun. Sometimes I come to the solutions when I'm drowsy before bed and have to get up and write it down before I forget!
-
Re:Great experience
Perhaps you'd be interested in Project Euler? It has a mix of math and programming problems. I worked through a bunch some years ago and found it really enjoyable. After you solve problems you can see others' solutions--which for me was really neat to see elegant solutions to problems that I had to brute force due to not being very familiar with the math.
-
Re:Very true...
Soft spot in my heart for Slack, too -- although I started off with an old RedHat CD I picked up at a garage sale (2.0 kernel series, I think), Slack was the first distro I really started using. Great stuff, though I've now moved on to Debian.
As to the "start off easy" sentiment, I would highly recommend Project Euler: http://projecteuler.net/proble... fun little programming exercises, and can really be done in any language. -
Re:Something else?
While I agree with parent in the case you actually are interested in newt farming, I actually code mostly just for the fun of coding, and focus on the type of code rather than the end product. To give an alternate approach, then, depending on what type of code you like there's probably a hackathon or a set of "challenges" or some competition that can provide motivation if you just want random problems to solve. I'm mostly an algorithms guy, so I do a lot in Kaggle, and Project Euler. Project Euler for example has hundreds of problems that more or less increase in difficulty, making it relatively easy to find something that will increase your skill, and the Kaggle forums are full of code examples from past projects to help you get on your way.
If you're interested in graphics or UI programming these examples may be less help, but I'm sure there are similar things out there. The results of hackathons are great places to start because the code is generally written by competent programmers but they have no time to do clean up nor to build the spaghetti that years of updates often brings... bug fixes and hacks are common, so the code needs some TLC, but it typically has very few hands in it and so has some good consistency. iosDevCamp (from a quick google search), has links to github code for some of its results.
-
Project Euler
-
Re:A picture is worth a thousand words...
I wonder how often you can set out to do an amazing thing and end up with a few lines of Wolfram.
Try doing Project Euler in Mathematica. It's so easy, I jokingly refer to it as Mathematica One-Liners.
-
Re:You mean basic stuff?
Careful about letting opinionation stifle your growth as a programmer. I would Rx you Project Euler. Take particular time to compare the solutions posted by others that are very short (excluding R/K/J) to the ones that are longer. Use a critical eye for not only execution speed, but readability.
-
Project Euler
If the crowd is STEM-ey, let them compete to see who can finish the most Project Euler problems in a set time limit using their own language of choice.
-
Project Euler
If you are a programmer and want to have fun learning about math you might look at Project Euler. http://projecteuler.net/
Not a book I know. But, very fun and educational. -
Project Euler comparisons
The Mighty GOOG entrance numbers are within an order of magnitude of the project euler membership numbers. I think you need an account on PE to see the stats:
http://projecteuler.net/countries
For those who don't want to "compete" in PE but want to know the numbers anyway, I copy some from the article and from PE's registration data:
over 3000 GOOG contestants from India vs exactly 4300 on PE
747 Russian GOOG contestants vs 2269 on PE
114 Belarus GOOG vs 254 on PE
2166 USA GOOG vs 21563 on PEI don't know much about the GOOG contest but I would guess the Venn Diagram of the GOOG and PE is almost entirely overlapping.
A good question is why less than a tenth of USA PE people competed in the GOOG, yet almost all the India PE people competed in the GOOG.As far as the elite levels go, this is very superficial, but the names of "first 50 to solve a PE problem" and the names in the forums on PE seem to trend very asian, so Japan might only have 1900 or so contestant, but they're all Ruby Ninjas with leet skills, or whatever. I wish I had real numbers other then vague observations.
Another interesting observation is that the Mighty GOOG short term contest is vaguely roughly around half the size of the permanent/ultra long term PE project.
As a PE guy or player or contestant (or nerd?) I can personally verify that PE is higher mathematics and hard core computer science with virtually no IT component. I don't know anything about the innards of the GOOG competition, can anyone involved describe the ratio of CS::IT or logic::memory in the Mighty GOOGs competition? Also PE merely requires any Turing complete language (although some problems can be solved by non-Turing complete languages anyway, and some can be done on pen and paper if you're hard core or its a REALLY easy problem), does the Mighty GOOG require something specific like Java only or maybe even more specific like "must be an android app" or something like that?
-
Re:Hard to get started
Well that was embarassing. you don't want to see projecteuler.com. Try
that works a heck of a lot better.
-
Work thorugh Project Euler
Just pick any language and work through Project Euler
You will think harder and learn a lot more than learning another language
-
Well...
When I was having a particularly difficult time writing poetry, my professor told me: stop writing and read. Maybe it works for code, too.
I don't know about feedback per se, but for improving (and learning fun math along the way) try Project Euler. You'll be able to see how other people completed the same problems (and in different languages). It's not really about "what is the right way to do this" but "why is it done this way and not that way."
-
good only for learing/discovering IDE features
Meaningful coding achievements need to be task-oriented.
But this is a good idea for making sure you're familiar with all the features the IDE offers. Done right, with interactive walkthroughs and whatnot, achievements could serve as an excellent supplement to documentation. -
Clojure and Project Euler
Learn Clojure with the help of Project Euler. After years of programming that made me feel like a grey bureaucrat, those two got me excited again.
-
Re:I did think of it.
arg.. bad link to project euler.. this should work
-
Re:A Partician is:
too bad they turned off public profiles.. but here
-
Re:A Partician is:
I remember doing some stuff like that for Project Euler. Man, if only I'd known there was an algebraic solution!
-
Re:Probably a good idea
That can much more effectively be done by concentrating purely about Big O rather than hardware tweaks. Just tell them to do problems from project euler and they'll get a good appreciation for algorithm efficiency.
-
Some sites I've come across
Helpful handouts from Germanna Community College's tutoring Center. (I used to work there a few years ago; these resources are not only helpful, but free.)
Drexel's Math Forum (full disclosure: I'm a current Drexel employee and student -- but the Math Forum strikes me as pretty cool.)
Project Euler(more oriented toward programming and numerical methods, but interesting site for developing your math skills. The problems range from not-too-hard to mind-boggling.)
Purple Math -
How about gaining experience?
-
Take a look at Project Euler
- If you like solving problems...
- If you like looking at sample code...
- If you like learning new techniques...
- If you have a need to prove your smarts...
- If you program in multiple languages and like to compare them...
- If high performance gets you all sweaty...
- If functional programming doesn't turn you on...
-
Re:Check out the Collatz Conjecture...
If you like life-stealers like that, you might want to check out Project Euler: http://projecteuler.net/
But don't say I didn't warn you!
-
Set them loose on Project Euler
Project Euler is a set of progressively harder math/programming puzzles. It's a lot of fun.
-
Re:Open Source Games...
But a lot of people here only claim to have Windows installed to play games.
I only installed Windows as a curiousity; downloaded a pirated copy off TPB[0], got a serial number off Digg (no shit!), installed it to a qemu virtual disk. Boot it up sometimes as a curiousity. Kind of like a paperweight that makes pretty colors. I've got a dummy0 interface just for it on 10.42.42.1, with it having a static address on 10.42.42.2.
At the risk of being redundant: 1) I realize I'm not the norm, and 2) I'm not trolling.
When I get the urge to play games, I play games. I play boswars, or netrek, or atlantik, or bomberclone, or armagetron-ng. When I really want to play games, I play Euler.
Maybe I'm the sort of guy who's the reason Linux won't make it onto the desktop... maybe I'm the sort of guy who's the reason it will.
[0] Fuck you. With all the computers I've bought with XP preloaded, I'm going to download a copy. EULA be damned.
</rant> -
Project Euler
For different challenges you could put them to, I would recommend http://projecteuler.net/. There are a huge variety of programming challenges (most involving math concepts) across a huge range of difficulty. They also provide a good introduction to recursion and cost of complexity since the 'most efficient' algorithm is not always obvious.
You could provide prizes for who completed the most problems as well as a prize for being the first to complete a problem. Then when all or most of the class has completed a problem, you can show them an 'efficient' or 'simple' solution depending on which you want to emphasize.
-
Re:Here's your answer..
But that young person is closer to school, meaning they learned from not just your mistakes but the mistakes of the industry over the past 30 years and very likely the youngsters were playing with real-world code long before they ever could have counted it experience.
You learned something applicable to actual programming in school? All I learned about was Turing machines.
I coded a lot of useful programs before I ever hit college, up to some fairly sophisticated character generators for my gaming group. While I was in college, I learned that everything I knew about programming was wrong, that I was an idiot for using BASIC, and that everything I really needed to know was in Maths. I graduated with less applicable programming knowledge than when I went in, couldn't get a programming job anywhere, and I've actually applied my college knowledge exactly once in the last eight years since.
College and universities aren't teaching you about the mistakes of the industry over the past 30 years. They're teaching you about the mistakes of the industry made before the last 30 years. Forget about the degrees. Ask them for an example of code that they've written, or ask them to write a simple function for you right there. You'll learn far more about their skill as a programmer than age or resume will tell you.
Problems from Project Euler seem to be a popular choice.
-
Project Euler
Well, if you guys both like math challenges, you should check out http://projecteuler.net./ To quote the homepage
:Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
Maybe you could tackle those problems together ? You could design algorithms together, let your son do the writing and then review his code and discuss better approaches. Also, when you solve a problem, you can access a forum on the website where other users post their solutions. You can learn a lot by comparing the approaches there. And since every user on the site has his or her favorite programming language, you can broaden your horizons by looking at solutions to the same problem written in K, Python, C, assembly language...
I've solved 51% of the problems and they've been great at making me remember some good programming practices.
-
Re:Solving problems
There's a site for that: Project Euler
Actually, it's good practice for ANY programmer. Try a few! -
Project Euler
A few weeks ago I came across Project Euler. Most of the exercises are good examples why math is good for coding; they have brute-force solutions that take a lot of time, but clever solutions should always take less than a minute to run.