Once you've mastered the basic syntax and control constructs of a language, it probably isn't worth your time to try a dozen different string manipulation exercises.
Perhaps this is beyond the scope of what this site is aiming for, but, I would hope for some exercises that help me understand what each language is commonly used for.
- Swift: Learn to display and manipulate a GUI
- Ruby: Learn to write a web application
- Python/Julia/R: Learn to fit some data to a model
- Go: Learn to handle some network connections, concurrently. (I see they have one exercise that emphasizes concurrency, which is a step in the right direction.)
- Perl/PHP/Bash: Learn to cry bitter, sorrowful tears.
This is a common misconception. PHP tears are actually almost sweet and not bitter at all. The only saltiness comes from hearing the opinions of other programmers talk about your primary language.
It's not a perfect language, but none are. I think some people are just jealous of how little setup/barrier to entry there is for PHP ;)
You speak like someone who hasn't worked much in PHP. When you do, a lot of quirks and flaws really bother you and slow down during everyday tasks, but the ones you mentioned aren't they.
Would you mind sharing a few that bother you? q
There's a bunch more quirks in Zend Framework that I use every day that are much worse than all the rest of PHP though.
Please don't comment about the voting on comments. It never does any good, and it makes boring reading.
The problem with a cookbook, IMO, is that it doesn't really teach you anything about the language. You could write some really cool (short) image processing code using OpenCV, but would it really help you learn C++ or Python? I suppose you could pick the top 10 libraries/frameworks and go from there.
But.. on the exercise front, there are certainly nifty ways of solving problems in some languages that aren't available in others. Python, for instance, makes a lot of programming challenges very simple with the standard library. Similarly stuff gets a lot more readable if you use C++11 onwards.
I agree there isn't much point if you already know the language inside out (though it's useful to keep sharp), but if you're learning it can be a great way to discover useful constructs like Python's itertools.
For example, you have jQuery, which will expose you to DOM interactions, callback-style programming and even promises.
ugh... How about "Learn about the DOM and web APIs"?
THESE PEOPLE JUST MADE WHATEVER THEY IMAGING AND BRING IT TO LIFE, I WANT TO MAKE SUCH THINGS CAN U HELP WITH SOME GUIDANCE SIR?
Not to say that exercises emphasizing the intentions or strengths of a language are bad; but precisely those boring repetitive exercises will be the common.. say "conversational mastery" of the language.
When I started on the assembly track, looking at others code to figure out how to get set up for the first challenge allowed me to do the rest on my own.
Analytical data on which problems you're solving and how you're doing vs how you think you're doing? And who might be interested in purchasing that data...
I like the emphasis on sharing solutions.
While there isn't much reviewing going on, I've found it useful to poke through a few other submissions for exercises (especially the ones with comments). I've learned a few things from other users' code.
I've been learning Elixir for this year's challenges and it's just the right amount of challenge required for understanding the idiomatics and idiosyncrasies of a language.
One big takeaway was how thankless and un(financially)compensated the task often is. If you find Exercism useful, I strongly recommended clicking the "Donate" button at the top.
Also, as the checks are from tests, there are no single right answer. I've seen some code challenge services (can't remember the name) that would mark fail if you didn't write it exactly as they were expecting, to the line break.
I have learned so much about what was capable in my favorite from those other answers.
It's all open source. Check out https://github.com/exercism/elixir. I've made some minor contributions in the Rust track and found the maintainers very pleasant to work with.
How suitable would this be?
Note: I have learned in the past, for about six months, went through K and R's C book, Udacity's intro course, and made some python scripts which are still in use on my site.
But, that was five years ago, so I've forgotten everything.
So, I'm not exactly a total beginner, but I currently am unable to do anything through neglect.
The bostonphp group (Now almost defunct, excepting training) ran a class on setting up and running a drupal site, which was good. They had people that run drupal sites helping with the class so if you had questions there was someone knowledgeable). That being said, I've never run a production drupal site, but I feel like I have some idea whats involved.
Many years ago I took a redhat kernel extension programming class. Again with someone knowledgable teaching the class, it was quite helpful. Since it was all people from my workplace in the class we were able to ask the relevant questions about the scheduler and other information we needed.
1. At the time, I could code the kinds of things K & R had me do. But, I couldn't, say, run a wordpress site, because that depends on knowing libraries, how to run php on my system, a bunch of php specific stuff, and other stuff I don't even know I didn't know
2. It's been five years. Without practice, I no longer can do the stuff I did while I was learning. I could pick it up again, I just mean the knowledge isn't currently available.
Basically, I had no project that required me to use the skills, so they didn't grow past what I picked up, and then they atrophied. Pressing business concerns became more important.
But, now I'm at a point where not being able to program has become more of a hindrance.
When you need to fix a toilet you don't usually start with learning hydrodynamics.
> When you need to fix a toilet you don't usually start with learning hydrodynamics.
I think that's wrong. You weren't taught hydrodynamics. You were taught how a toilet works and then ran in to a plumbing problem. The issue is there isn't much out there on plumbing, so to speak. It reminds me of The Cliff of Confusion and The Desert of Despair.
I don't really have any silver-bullet for you here. The "knowing libraries, how to run php on my system, a bunch of php specific stuff" part is mostly a matter of tenacity, Googling, and reading tons of dry technical documentation. It takes a while before the big picture starts to click.
I'm guessing a school like viking would mean I basically do no business developmemt for the three months it takes, right?
60k questions: https://stackoverflow.com/questions/tagged/php+wordpress
Add the keyword specific to the problem, and if can't find it, just post a new question.
SO (especially the PHP and JS parts) is full of terrible answers that basically instruct people to throw darts at the board until one hits, without explaining any of the underlying concepts behind what's happening.
This sounds like a great strategy if OP wants to become a mediocre programmer.
For that, there's no need to go deeper than what I suggested.
I'm satisfied. Very comprehensive language list.
The idea is great: have a test suite and program your exercises against it. But in my opinion, exercism makes you write a lot of non-idiomatic code. There is value in that, but only so much.