Project Euler has been mentioned.
I also like http://exercism.io/. Project Euler is all about the math problems, exercism has you doing more varied stuff. I haven't done the Python tasks myself, but presumably they are similar to the tasks in the languages I have done.
I haven't tried codewars, but I worked through the algorithms on exercism.io where once you've submitted a solution you can see all the alternate approaches, and I certainly refined my style based on all these approaches, trying to understand how each one works. It's an interesting thing where I've dismissed a lot of ninja-type solutions for a more intuitive approach while still aiming for a succinct and declarative style. Exercism also follows a TDD style which once I got the hang of it made the exercises more understandable, and fun.
You're right, absent other avenues for feedback and code review from more experienced developers, this is the way to do it.
do exercism.io python track up to challenge 35
This should suffice. Say 1-2 months work if you are new to programming.
Zum programmieren: vll mehr learning by doing? Nur vom anschauen, aus der Vorlesung hat noch niemand programmieren gelernt. Such dir ein kleines Projekt und mach es einfach. Bei Problemen hast du immer noch das Internet.
Wenn du es eher geführter haben willst, mach Exercism.io durch. Dort gibt es viele kleinere interessante Aufgaben mit Tests. Wenn man eine Aufgabe gelöst hat kann man sie hochladen und anschließend die Lösung der anderen sehen. Das hilft so ungemein besser zu werden und andere Lösungwege zu sehen. http://exercism.io/languages/java/about
There are a few programming challenge sites I've been using to build experience with functional programming, Haskell in particular. The problems start easy and get more difficult as you go. Many of them are very well suited for functional thinking. Here are the ones I've been attempting and recommend:
You could. But that seems rather impractical to me. You would have to invoke all your system calls through the subprocess module. Also I don't think it would be that good of a learning ressource, since python is a general purpose language in contrast to system shells (like bash, zsh, fish, ...). Python isn't designed to be a system shell.
If you just want to learn python I would rather recommend using a service like exercism.io.
One of my favorites is exercism. There's a whole bunch of exercises in a whole bunch of languages, test suites for the exercises, and the site is built around crowdsourced code review, so you get feedback on your code.
Tape + TAP + Faucet... Keep it simple. Use Node.js. You can also use Cheerio.js as a lightweight, non-bloated jQuery drop-in replacement to test dom functionality on the server without doing all the work with a browser & html you mentioned.
Jasmine & Mocha are both useful also, but they have way too many features... too much freedom to test things in complicated ways. Testing should be simple so that people can get into doing it without it being a painful process.
Try doing some of the exercises in the javascript or ecmascript branches on http://exercism.io. It forces test-driven development practices and will expose you to good ideas about how to go about it.
I'm pretty new and getting the basic syntax down using exercism. If you guys have any other source with bite-size problems, I'd be more than glad to hear.
When I feel comfortable, I guess I'll move on to pong/tetris/breakout.
I would throw out exercism.io as a site for some programming problems while using Rust. It solves the "well, what am I going to make" question of programming, while learning. You could also run a few languages at the same time.
If you get stuck, you can submit something, and look at other solutions to get yours working. I started working through this last week and have been coding up missing exercises this week. (I'm about 2 weeks into serious Rust learning, but 3 decades into programming learning.)
And learning Rust while on vacation is certified "geeky" by my wife. But she is used to that. ;)
If I were learning fresh, I think a basic course on data types and stack vs heaps would be helpful. In this sense, a beginner's C language course may be helpful for these concepts and give you an understanding of the advantages of Rust. Much of the Rust documentation expects understanding of this and pointers and other things.
If you do attempt to start immediately with Rust, it would be very beneficial of capturing all of the friction points that you run into. This could be turned into information to help others start programming in from scratch Rust.
Whoa, thanks for the link. Sunk a few hours here right away:D
I would also recommend exercism.io, it's pretty similar to CodeWars, except you work on you own enviroment, not the browser and there are no levels / points
If you don't already have a good understanding of JavaScript and HTML/CSS I'd probably start with those - you don't have to totally master them, but while you're building apps with React you'll end up using all of that knowledge. Exercism.io has a nice set of exercises to hone JS fundamentals.
Start with Create React App. Heck, you even can go to production with it. It's very capable, and it's a great developer experience, and it's easy to use. Lots of win!
Don't pick a boilerplate project. Not even one with 10k stars on Github. They're not a good starting point for beginners because they throw too much at you at once (React + Redux + Routing + tons of config files + etc). Learn React by itself first. Add the other libraries once you realize you need them.
Lifecycle methods will become useful when you want to fetch data from a server, and render it into your component, which you'll do in componentDidMount
. I wrote a quick guide to fetching data here, but I recommend you just use fake static data to start off with, and get used to making components with React. You'll get pretty far without needing to touch any of the other lifecycle methods.
This is another good option for learning: exercism.io. They simply provide tests and you have to suffice them on each exercise, so it takes a bit more from you, which I guess it's great.
+1 for codewars as I think it has the best interface for JavaScript. HackerRank is used by a lot of companies for code challenges, but, last time I checked, their JS environment is a little too Node-centric for me. http://exercism.io/ is also pretty popular.
Following LYAH, try Real World Haskell. But more importantly, you should start using it.
I learned a lot from playing the http://exercism.io challenges. It's great because people literally comment on your code and tell you tips on how to improve your code. At the same time, you can ask them to explain why etc.
Web Courses Bangkok are the only I know of, though it's web dev rather than general programming.
There was meant to be a boot camp being run this year that involves travelling around Thailand and coding but I've not heard anything about it.
There are so many online courses if there is anything in particular you are interested in learning, but the best way to learn is to write code. Exercism is good for this.
exercism.io gives you a problem to solve, and a test file it uses to validate your code. Good way to check out test driven development in reverse by reading proven tests before you start coding solutions.
Real Python - Django testing tutorial
Test Driven Django Development
There are a lot of things out there. Big fan of reading blog posts, too. Find one from someone who just learned TDD, and is sharing what is fresh on their mind.
You might be interested in exercism.io. It only covers relatively simple programming problems, but after you've submitted your solution, you can see everyone else's solutions and give/receive code reviews. Seeing all the different approaches to a single problem, and comparing them to your own, is a pretty good way to learn.
As for reviews of larger changes, like adding a feature to a Rails app, I'm not sure.
-> impl
still isn't out of nightly? lol no progress
did the ecercism track back in december/january and that was one of the most obvious limitations
I am also new. I have been enjoying http://exercism.io/ The problems seem to give you one or two bites to chew on at a time. It doesn't give you any instruction, but I have been able to figure most everything out by looking through the Clojure cheatsheets etc. Once you have completed the projects you can browse everyone else's solutions and find quite a few better ways, or "why this way and not that way" to investigate.
I enjoy the various books, youtube lectures etc. but until you have enough real-world generated questions it is very hard to absorb and retain content. Once you have struggled through a few problems, solved it with great difficulty, when you see a better solution in a book or a "Don't do it that way, this way is better" it makes a lot more sense when you can relate it to you past victories and failures.
It is overwhelming, but if you keep at it pieces start falling into place.
Hi! I'm also a Haskell newbie :). You should probably take a look at Exercism, they have some really cool practical small projects that help you exercise your coding abilities in different languages, including Haskell.
This is a very common problem, see that everyone fails to implement the sieve properly here despite the README being very clear on the fact you should not use division operations.
I know the feeling. I do practice exercises, like from http://exercism.io I also just continue doing more advanced tutorials: Automate the Boring Stuff, Making Games with Python, Test Driven Development, etc.
I'm totally new to Julia, and I like to learn using coding exercises. I noticed exercism.io didn't include Julia yet, so I asked about getting a new track set up.
Obviously, since I don't know the language yet, I'm not the most qualified to get things going. There are a few things that need to happen before it's ready to go:
Implementing a handful of exercises – you can look here for descriptions and test data for ones that are common in other languages on the site.
Documentation for installing Julia, learning resources, etc.
A couple people interested in acting as mentors to provide feedback on exercises need to step up before the track can be launched officially, but people will still be able to practice using the exercises before then.
I can pitch in on some level, but I'm hopeful you'll be interested too!
> This is a library that I am working on by myself.
If this is the "mission statement" for your project (the first line in your README), you might worry that your message is turning people away. Perhaps a better mission statement would be "this library is helping me learn" or something like that.
> It will allow users to perform various algorithms/computations/processes
People are busy. You need to spell out exactly what your goals of your library are. This is way too vague for anyone to decide to invest more time or not. So they will default to "not".
> In addition, I hope to make this slightly different
You should be specific here, because that is probably the only thing that will attract people to this library.
> just make sure you're exited about the thought of creating something like this
I'm not trying to dissuade you, but I do think your "approach" is wrong.
First, it seems like you are 're-inventing the wheel' in order to understand coding better. Yay. That's a good thing.
But second, you seem to want others to join you. That's a little trickier -- we don't know exactly where you are going or what your goals are. So you will have to do a lot more work to get us to understand where you are going. Even if others have similar goals (learning), why would they spend time on your library, why not strike out on their own?
Open Source is not a pool of programmers looking for something to do. It is a bunch of programmers trying to get stuff done, and sometimes their interests align with fixing existing code instead of writing their own.
P.S. You might want to look at http://exercism.io/ for a good way to find other people interested in learning along with you.
Hi, best way to learn is to jump in and start. I dabbled and dicked around with programming for 4 years, and achieved the majority of my learning within the last few months.
Pick a programming language you want to learn, start working on problems - http://exercism.io/ is a great place to start.
Make yourself work on a problem each day. Allow yourself the ability to not know what to do. Force yourself to work on one problem a day.
At first, reading a programming language is hard, it's full of symbols, and syntax and stuff that's complex, and scary and hard to understand, then it hits you like a winning lottery ticket and you figure out the solutions and realize you can do it.
I'm programming in Ruby, I like how it works and enjoy programming in it now after struggling with it months earlier. Good luck!
So the example they have here ... what do you think?
Personally I feel iteration #1 is just fine, short and concise. Going all the way to #5 using lambda is just way too much effort. Is this what you want/should to do in real life?
Why can't those ladies simply go to Codeacademy.com and learn the same thing without being coddled?
Also, http://exercism.io is run by a woman and is a fantastic resource for ANYONE learning to advance their programming skills with many real world scenarios. Plus it lacks the social agenda of the program in the OP article.
You'll need a Github account to start.
Sign in at exercism.io and it should take you here: http://exercism.io/onboarding/install-cli
Those instructions should get you on the right path. You'll need the windows-386 on a 32-bit machine and the windows-amd64 on a 64-bit machine.
Once you get it installed, just use a command prompt to run the exercism executable.
Cool. This looks to be by Katrina Owen (most active contributor by far on github, copyright hers at the bottom of http://exercism.io/). She loves clean code, and has a fantastic, and wonderfully visual talk on therapeutic refactoring here. Even if you don't know Ruby (I know very little, all absorbed osmotically), I highly recommend it. It's comforting and fun.
I like jumping right into writing code so I'll start with problems on http://exercism.io/ (or a similar site). I did this when I learned Elixir and Rust a year or so ago. What I like about that site is that they have tests written that will help guide your development so I will easily know if I did it correctly. At first, I won't know any of the syntax so I just start Googling like crazy to figure out just what I need to know to solve the given problem. If I get really stuck, I can look at how another dev solved the problem since everyone's solutions are uploaded. And then I'll move on to the next problem and continue Googling for syntax and standard library calls that are required for the problem.
Python should be pretty comfortable for someone coming from a C family of languages (except for the curly braces).
Get caught up on the syntax here:
https://learnxinyminutes.com/docs/python3/
This is the book that made Python "click" for me coming from another language.
http://www.diveintopython3.net/
Then start solving some exercises here:
The exercism exercises are towards the practical/simple end of things. The emphasis is not on solving tricky problems - it's on finding the cleanest solutions to easy problems. You can see a list of the Haskell exercises here.
If you'll look it over, you'll see that most of the exercises are closer to fizz-buzz than anything tricky, but that's kind of the point. Solving the exercises is really just the warm up - then you read other people's solutions, and iterate on your solution until you're happy with it. If you're a perfectionist, it's really quite satisfying, and nothing else I've done has improved the quality of my day-to-day coding more. I'd strongly recommend it.
Most programming courses teach syntax because it's easy, but it's like teaching grammar in a creative writing course. You won't know how to write after such a course. You might want to start simple and work on some little exercises, say, at codingbat.com (http://codingbat.com/python). This won't exactly teach you to program, but it will help you write tiny functions. Think of it as a stepping stone to writing programs.
If you are more mathematical, you might try: http://exercism.io/languages/python/exercises
I would say those are more algorithmic intensive, so it may not be the best for a beginning programmer.
I also like the suggestion of writing small games, like Hangman. i would keep the games super simple, and mostly text based. Other games include Tic-Tac-Toe and Connect 4. These are likely not to be that easy for you.
It's a bit like learning a foreign language. Even after a few years of learning, you might struggle reading a children's book because the vocabulary might still be too difficult.
Finally, you're not likely to ever do anything completely on your own. Short of coding every day and working on memorizing and quizzing yourself (like someone might if learning, say, French), you'll most likely continue to look things up and remind yourself how it works.
Most people, esp. beginners, find it really difficult to judge how difficult something is. They do the equivalent of "I want to build a car" and find the equivalent of "I want to build a bookshelf" really boring.
Hi, I'm currently trying to do the nth prime problem from exercism.io where we calculate what the nth prime number is. For example the 6th prime number is 13.
I made two versions: an iterator version, and one with a for loop. I noticed the iterator code took much longer, even though I think both should compile to something similar. Wondering if someone can tell me why the iterator code is slower, since I think it is a more elegant solution than the loop.
Gist: https://gist.github.com/nocduro/5da083a83fb09d03adfb31cdff997dde
I included the benchmark results at the bottom of the gist.
This is my first week of vacation and I spent much of it learning Rust. I've been working through exercism.io in the Rust channel. So far I have coded up two exercises that didn't exist for Rust and submitted pull requests.
Also working through Too many linked lists which I wish I found sooner.
I started Lode-Ruster (a rust clone of the Apple II version of Lode Runner.) Using ggez. Although, I got a little ways and went back into learning mode for now, as I'm hitting some rough edges with my knowledge.
Se foque em aprender as novidades do CSS3, pois a estrutura melhorou e muito. Sites que recomendo
Perhaps those challenges are too difficult for a beginner, hackerrank seems more a place for seasoned developers.
I'm almost done with the exercises on http://exercism.io. But that's just me. I'm interested in Test Driven Development and this is really cementing it in for me.
try something different. Al Sweigart's books are probably what you're looking for. Automate the Boring stuff lets you do "useful" things. Or Making Games with PyGame.
Try the Exercism JavaScript track. You do small code problems, after which your solution is open to review by anyone else who completed the same exercise and you can also see other's solutions. It is very helpful.
Going to plug Exercism, I've been going down the Elixir path and it's been good for stretching my brain to the fp concepts. There's an elm path as well (haven't tried it but it's next).
I am also a noob -- but I have been really enjoying the exercises at
Lots of little bite sized "puzzles" that are real programs you build in a real environment.. Occasionally you get helpful feedback as well -
If you get a chance I highly recommend http://exercism.io/
They give you problems to solve, after you solve it you can view other people's answers and people can make recommendations on your solution.
http://exercism.io/ - solve problems, get code review. In the meantime, review other people's code. You'll learn as much (or more) by reading and trying to give useful feedback than by solving the problems themselves. It's an awesome site.
I love Eloquent Ruby + Designer patterns in Ruby + Practical Object-Oriented Design in Ruby. If you're new to programming, I suggest starting here : https://rubymonk.com/ . Then graduate to a book. Of course, books only help so much and why I also I recommend http://exercism.io/ where you get exercises, complete them, and then git nitpicked. In addition you can see other people's solution and from this find elegant and succinct Ruby idioms. It really helps to get burned, and the pain is temporary. Then naturally, there's a lot of projects out there that are very well written, get involved, it'll only make you a better programmer.
That's why I said coupled with a book or two :) Perhaps I should rephrase : Read a book or two while you do a port, being mindful to write idiomatic Ruby. Then again, maybe that's a bad road for a lot of people. Maybe just starting a brand new project from scratch is the best way to go. Everyone learns differently. Of course, studying production code that's already out there is invaluable. Also, regarding books, I loved Eloquent Ruby. I also recommend Design Patterns in Ruby, as wells as the Ruby on Rails tutorial ( https://www.railstutorial.org/ ) . Even if you're not interested in Rails, it's a fun way to get acquainted with Ruby IMHO. Also, do check out http://exercism.io/ where you can submit exercises and get feedback on the code.
Two free resources I used and recommend:
Odin's ruby course - it's half-reading (mainly from beginning ruby book) and half small problems. this curriculum also starts you off doing the code academy problems.
exercism - ruby - work on programming problems and compare with others. users give and receive feedback. it's interesting to compare your solution with 20+ other submissions. it helps you look at problems from different angles and also great place to pickup new tricks with ruby.
Exercism.io is a great resource where you're able to use your problem solving skills while you level up your Ruby.
In addition, Basic Ruby. This is extremely basic, however, BR does a great job with the fundamentals of Ruby.
+1 on Ruby Monk. -1 on CodeAcademy.
I'd recommend Sandi Metz's Practical Object-Oriented Programming.
Estou de acordo com o /u/airahnegne - tens também o exercism.io e para documentação tens sempre o devdocs.io
edit: Nota que estas duas tools ensinam-te mas não te dão equivalencias; No entanto, se fores como a maior parte de nós, pequenos projectos contam como portfolio - embora não tenham tanto peso como trabalhar numa empresa, para começares numa consultora (ou numa empresa jovem) é bem capaz de chegar enquanto continuas a fazer actualização de conhecimento (que é algo essencial nesta area)
Project Euler is very maths heavy (as you'd expect). Some of the alternatives are fun but you are usually working with their API (like the game based ones) so you spend more time reading docs than solving problems, maybe they get better after you've used them a while but the initial adjustment is irritating.
exercism.io is better for actual coding, imo. They're not pure maths challenges but more general and varied (data structures, math problems, working with strings, logic puzzles). It's also test based, you get a set of tests and have to make them pass. You work test by test so it encourages you to break the problem down and only write the minimal amount of code to get the test passing (also a nice introduction to testing if you aren't familiar with it). It has a little CLI and you do everything via the command line and in your own text editor, so its more true to life (and again a gentle introduction to working in the terminal if you're not comfortable with it). There are like 30+ languages you can do the exercises with (and more on the way) although some languages have more tests implemented (it's Open Source so you could contribute if you wanted to). You can also view other people's solutions and comment/ receive comments on your code but this part isn't very active. If you get stuck you can just submit an incomplete exercise and move on to the next (you can always some back later and resubmit, the website tracks iterations). It's also great for ramping up with a new language for more experienced devs (maybe you wanna jump on that F# train).
Oh and I just found out they'll be releasing v2 of exercism soon, so hopefully things will get even better, especially from the code review side.
If starting an app seems daunting, you could try something like this: http://exercism.io/languages/haskell/about
It allows you to solve very simple problems in your local machine with an actual haskell environment, but you're not building an app, just writing one or two functions that should pass the tests, and it starts at 'hello world'. Anyway good luck on your journey.
I think you should do the emca exercisms. They provide a set of tests with no implementation, and you need to write the implementation, and get all the tests to pass.
Try exerciscm. (http://exercism.io/languages/ruby/exercises)
It's better to use exercism on a second or third language. Not so great for a first language.
Here's another potentially simpler exercise site I googled: http://www.evc-cit.info/cit020/beginning-programming/chp_05/exercises.html
Try exercism.io, you will receive and can give feedback to others. For a more real-world experience try agileventures and you will work on charity projects with others developers of the world.
No. But all of them can handle a tech interview. Write down everything you remember from every question, and remember a good answer for it for next time. Basic Python isn't enough, you also need to know the basics of Big O notation, some standard data structures, and yeah probably wouldn't be bad to at least know the basics of the Fibbonaci Sequence, the Seive of Erasthones, and a general idea on sorting algorithms.
As an aside, do the entire Python track on exercism.
A buddy just turned me on to exercism the other day. You run through practice problems, use language docs (or 3rd party) for reference, and are given feedback by the community. It's not perfect, especially considering that every language has its own small quirks, but it sure as hell beats covering the basics over and over and over etc.
I think it was either HackerRank or CoderByte, I'm not really sure.
There's also another cool one called http://exercism.io/ that I found
but unfortunately all of those are challenges designed for experienced programmers. They all start with "Hello, World!" but ramp up in difficulty immediately, and aren't good for a beginner programmer like me.
I took some java/C++ in high school and got as far as binary trees, but I've long since forgotten the syntax.
I think I'm going to learn Python (because it seems cleanest and easiest, but is still very popular and is actually seeing rapidly increasing relevance lately) on CodeCademy and eventually move on to Golang after I get pretty good with Python
I've been working through the Python track on exercism, and I think that might be a good place to start; if you can make it through that whole track, with maybe a bit of googling for some unfamiliar problem domains and / or looking for a better algorithm, then you'll both know Python to a reasonable degree and know where the weak points are in your knowledge.
That said you've not mentioned what sort of problems or areas you're running into a wall with ... generally, if you feel you might not know enough about a thing, you probably don't yet, but unlike certain political figures at least you're willing to know what you don't know.
You might find this useful as well - http://exercism.io/languages/javascript/about
It might be a bit more advanced than what you are used to (based purely on your description), but I suggest checking it out!
I really like FreeCodeCamp and Exercism.io
I'm starting a series solving the exercism.io challenges, you may find them useful. I would actually appreciate any feedback you may have for me. Good luck on your learning process and always feel free to ask any questions!
You need a tangible project. It doesn't matter how small it is. It can even be something someone else has already done. You need something that will give you a sense of accomplishment.
Are you currently employed? Is there something you do that can be automated? It can be the silliest little thing.
Here are a few idea...
How about a script that will look through your inbox and nag you on screen about all the emails over 3 days old.
Use the weatherunderground api. Create a script will give you the weather not just for where you live now, but also of other places of interest. Once you get that done, have a v2 which stores the data in a database. Then you can chart the past weather.
I recently came across http://exercism.io . You are given a challenge in your language of choice. Complete the assignment and hand it in for review.
I really enjoy Exercism's Python track. The TDD-style method of solving exercises is fun.
CheckIO is another online coding challenge site focused on Python.
Check out http://exercism.io The exercises are simple enough, so make a point of producing clean code, then critically comment on other people's code and encourage them to do the same to yours. It's important to verbalize your understanding and put it to the test. Pair that with reading a book but remember that actually doing something with what you learned is the important part.
Have a look at exercism.io. It has Ruby coding exercises, and once you complete them you get to see everyone else's solutions. So you're not just reading code, but also comparing it to your own code and analysing how yours could be better.
One word of warning though: getting started isn't exactly user friendly. They have a weird command-line interface that is a bit difficult to set up. It should be smooth sailing after you get the first exercise done, though.
If the exercise is bob, you need to distinguish whitespace from non-whitespace, and detect !
and ?
. You could either write a for-loop iterating on each character in turn (on which you can use pattern-matching), or using a fold
function to use a more functional style to do the same thing. With a loop, the state you accumulate will be placed in mutable references, with a fold it will be explicitly passed around.
There is no convenient syntax for regexp operations (matching and substitution) in OCaml. Libraries do support regexp matching and substitution (see humane-re for example), but this exercise does not require any regexp usage.
You should avoid using (^)
for string concatenation: its cost (in time and space) is the sum of the lengths of its two parameters, so repeated concatenation in a loop may result in quadratic behavior. This is a mistake that beginners often do. If you find yourself needing to concatenate lots of small string fragments, put them into a list and then String.concat
, or use a Buffer
module.
exercism.io is a good site, but the article that you've linked is no more than a clickbait.
I was even about to report this post for clickbait/spam just after reading the title.
Better that you link directly to the site than to that shitty advertising article.
I find this to be a fun place for coding exercises when I am too uninspired or lazy to start my own projects:
It is not necessarily for beginners, so it should be challenging enough to keep your interest, but it's also simple enough that you won't get frustrated (until you get to the later problem sets). It also allows you to try out some other languages when your brain gets too pythonic.
Sorry, the link is to the help page; if you're unfamiliar with exercism.io, you download the binary and it fetches problems in over 20 languages, and now elisp is part of the mix. Enjoy!
What did you do in the Software engineering course? I'm not being smart either, I was an EE in college so I wouldn't have any prior assumption.
There are ways to learn this on your own though. Primarily I think just reading sweng books and practicing this stuff on your own, making projects that have large code bases. several to 10s of thousands of lines. Make automated unit tests, etc. The whole 9 yards.
I do think it's slower than a proper course/program on learning this stuff though, and there are ways of getting code reviewed. There are sites like http://codereview.stackexchange.com/ and http://exercism.io/ . I'm sure there are others as well.
Some blogs can also help, e.g. Casey Muratori dismantles over oop-engineering that appears a lot in CS education.
Exercism.io is one, but it requires you to join a team. Some teams are private, so you need an invite. But it's really cool in their approach to getting your team mates to give feedback and help on your code.
Project Euler is another one, and as far as I can tell it is language agnostic. It is heavily geared towards mathematics, so keep that in mind.
Reddit's Daily Programmer Subreddit is another cool one. They give you a difficulty rating on the problem, and then you get to solve it in the language of your choice.
Yes, I mean I am trying to reduce state as much as possible in code. I happened to see this post. Have been writing code like this for sometime, but I think this isn't exactly functional though he seems to argue so.
Off-topic: For instance have a look at my attempt to remove state; do you think removes all state? I fail to understand why its not.
Ah, thanks for the input!
Also, regarding lang-8 for programming, what do you think of existing things like Exercism and Project Euler. They seem to accomplish something very similar.
I've been teaching myself C++ as well and I did his recommended google search and found some pretty mediocre links.
There's LearnCpp.com which has some pretty basic quiz format questions, but when it starts getting into the stuff that could really benefit from some sort of way for being able to test yourself to verify that you have actually grokked the content.
There's also exercism which requires a github account. I've not used it, but it sounds like something that might give you exactly what you're looking for.
If others out there have any first hand experience with sites they have found useful, I would love to hear about them. The advice "Just use Google" is not all that helpful.
I really like exercism.io.
It has exercises for several languages, but I only did the Swift ones. Best part is how it makes you look at other people’s solutions to improve your own code. Unfortunately, it’s not as active as it should be.
I know you asked for projects, but you while you're trying to come up with some ideas, you can also practice by doing the Elixir exercises on Exercism. There are some nice things about doing them: 1. They force you to come up with your own solution. 2. Assuming others participate, you get feedback on your submitted exercises. 3. You can view the solutions others came up with. I've done some Clojure and Haskell exercises and got great feedback.
Damn it! I think I've just tried to make the same point on an exercism.io nitpick. I should have waited a few more minutes, then I could have simply linked your blog post ... ;)
How about programming challenges? I came across http://exercism.io/ recently - you complete little coding challenges set by them and then submit your work for other people to critique. I believe they offer Python challenges too.
Exercism.io is an excellent place to practice coding. Also these videos are a great resource to learning about programming. The guy is very good at explaining core concepts!
Programming. Lots of people are suggesting equally unproductive hobbies like pool or meditating. But if you want a new "addiction" that is still computer oriented and will also teach you a good skill, try programming. I've heard Exercism is a good place to learn, but there are countless sites out there to learn programming from!
I can't even program myself (at least not very well), but if I suddenly decided I no longer wanted to play WoW or Diablo or Dota or whatever tomorrow, this is how I'd fill the void.
Sometimes constructor parameters aren't available, so you don't have the ability to use them. In those cases, there's nothing wrong with using the {}
initializer syntax.
The website you're talking about is http://exercism.io/. I started using it. It's kind of cool. But it never advertised itself as "teaching coding well enough to get a job". That was other third parties. It is actually just a place to share code reviews on simple exercises. I find that it is actually pretty good at doing that. But no one's going to get a job after learning programming from that site.
Thank you all for the replies. Going to have a search through them now.
Also going to leave this here; http://exercism.io/
I cannot vouch for it, as I haven't looked through it enough - but it has hit the front page today, oddly enough, claiming to be able to teach you how to code well enough to do it as a job. (Just in case anyone else is in need of sources)
Again; thanks for the help! :)
Exercism.io isn't a site to learn programming from scratch. It's crowd sourced mentorship. It's a place to hone your skills on a language through peer reviewed katas. This is something even experienced developers can benefit from.
Apart from typoglycemia's advice, I'd also recommend checking out http://exercism.io/. You get to solve problems and have others comment on how your code could be improved.
Read functional programs. After you have learned the very basics, try solving some exercises on http://exercism.io . It has the option to look at the solutions from other people which I found incredibly helpful when learning Haskell.
You will see concepts you don't know yet - feel free to look them up as they come up.
I'm self taught, and mostly I'm looking up things on wikipedia or other places when there's something I can't quite wrap my head around, If you have some time there are also very nice exercises at http://exercism.io that can help you slowly doing exercises that help you get better at different datastructures and things like that.
For myself, I've been adapting exercises from http://exercism.io/ , but at least the tracks I've been looking at (Elixir, Erlang, and Scala) have all been more applicable to Apex than Aura (or anything front tech).
For the curious: https://github.com/nilvon9wo/alpinism
Agreed totally, though I might say that courses work well as long as they have flexible code evaluation and/or direct mentoring.
http://exercism.io is phenomenal if you are brand new to a language.
I recently stumbled across http://exercism.io/ while looking for stuff to help me learn Golang.
I'm also thinking of signing up to be one of the ruby mentors, the guys on the go track have been super helpful!
An internship? Sure. If you concentrate very hard and focus on basic skills and scripting tasks. Plenty of companies are happy to give a summer internship to a student who is keen and knows the basics.
For instance if you can complete every exercise in the Python track of exercism you'll find many companies that would offer an unpaid internship.
Even more so if you can write some basic command line tools that, for instance, walks a directory tree and finds files whose name match a simple pattern.
The official "Tour of Go" is really simple to understand even if you're new to programmation. You can try http://exercism.io/ it has many exercises for all level and you can see others people implementations that can help, good luck !
No worries; without people recreating the wheel there wouldn't be any competition out there!
As for cryptography, it is misunderstood by a lot of developers - and increasing understanding is a really noble idea. I think CryptoPals is a brilliant resource; something similar with unit tests bundled in (a bit like how Exercism would be awesome IMO.
Wes Bos has a free javascript course with 30 tutorials. For nodejs, there are a good number of exercises on exercism that will start you off on the basics.
Exercism has a large number of languages to learn and is a useful tool as it promotes coding over reading, but what it fails at is enforcing good practices, such as coding style. I recommend a tool called XO as it requires little or no configuration to get started, and is great for beginners.
If you're having trouble, limit yourself to one language. When it does go right, which one of those do you enjoy the most? Do you really enjoy sketching out webpages and designing visuals? Forget the rest and just mess around with HTML + CSS. Then once you feel confident with that, add JavaScript and make your pages interactive.
If you like command line tools or want to write a web scraper, go with Python and figure out something that might be fun/useful to look into.
If you like structures and algorithms and more computer science-y type stuff, maybe go deeper into Java. But as you said, you're finding Java hard to learn, maybe forget about Java and switch to Python full time.
There's a saying: "How do you eat an elephant? One bite at a time." Don't try to learn too much at once. Find one aspect of programming that you like and go that route and forget the rest.
Once you build up confidence you can add new languages/technologies to your toolbox, but be careful not to go too wide too early.
If you're looking for simple exercises to build up confidence, check out http://exercism.io/. My advice would be to solve those little problems however you can, but then take a few minutes to look at your code and think about how you can improve it, or how you can write out a more elegant solution. Then submit it and look at other people's solutions and really try to understand how they did it if it's different.
Hopefully some of that is helpful. Good luck!
Practice these {
, }
.
Joking aside, I don't think there's a lot of difference in core concepts, although I haven't done any VB for ages.
To get exposure to some random exercises, you could check out Exercism for Java.
Alternatively, maybe check out this free Udemy course.
I like Exercism's format: its tool downloads a project shell with a description and some tests; you write the code which causes those tests to pass. It introduces people to TDD, encourages them to configure their own dev environment, gets their toes into the water using the command line.
Of course, I'm not unbiased; I'm one of the track maintainers there.
Check out Exercism. It gives you a track to follow for a given language. You submit your answer, then others who are also learning can comment and critique your code. And it's free.
I'm in the same boat. I wrote my program/game and "finished it" and haven't touched it in months. I'm also somewhat busy with constant interruptions so I can barely type out a if-else .
Maybe try something different. take a class in other concepts.
Al Sweigart just posted a free (for cyber monday week) class on Udemy. Give that a shot. I'm taking the "Crafting quality code" class on coursera.
https://www.reddit.com/r/learnpython/comments/7fxork/im_releasing_a_free_code_for_the_automate_the/
https://www.coursera.org/learn/program-code
For a few months, I went through the exercises on http://exercism.io
I’ve had the same problems with these sites myself, especially CodeAcademy and DataCamp. They’re useful in their own way but entirely lack the critical thinking required to find the right solution to a problem.
I recently discovered http://exercism.io/ which has been an awesome complement to other resources. It provides problems to you without giving you the solution ahead of time, then let’s you compare your solution to others. You’re encouraged to comment and discuss with other users how they solved the problems which has been great for discovering new approaches.