Play wargames: http://overthewire.org/wargames/bandit/
Get a shell account: https://www.gnu.org/software/hurd/public_hurd_boxen.html (ask over at #hurd at freenode.net) and start solving http://www.spoj.com/ problems there.
Dynamic Programming is one of those kinds of things that you have to practice quite a bit to get better. So my suggestion would be to go to one of these competitive programming platforms (like this one) and start solving DP problems.
Begin with the easy ones and do not go immediately to Google to see how it's supposed to be solved. Try to come up with the recurrences yourself, get stuck, draw a lot of matrices and think really hard about it. Eventually things will start making more sense.
Start competitive programming. Not only you will get a better understanding of the programming language, you will also come across some very nice and challenging problems.
Here are the links to my favorite sites where i practice:
* https://www.codechef.com/
* http://www.spoj.com/
* http://codeforces.com/
/r/dailyprogrammer http://www.topcoder.com/
Are the two that I know of with constantly updating challenges.
https://projecteuler.net/ http://www.spoj.com/
Are sites that have huge backlogs of problems to solve.
When you are done with the introductory books, start going trough SPOJ. There's problems to be solved there, you upload your program and it checks your answer for correctness.
It's a good site for learning syntax by writing short programs. Once you have the basics down, competitive programming sites like http://www.codeeval.com and http://www.spoj.com allow you to practice writing longer programs.
Another thread on this topic: http://www.reddit.com/r/learnprogramming/comments/1viwik/what_are_your_thoughts_on_codingbat_and/
Pega um projeto pessoal, faz um emulador de gameboy, por exemplo.
Mas também depende de que área você quer seguir, se for desenvolvimento web, precisa correr para aprender JavaScript e typescript. Se quiser trabalhar com ciência de dados, estuda estatística, inferência e uma linguagem como Python ou Scala.
De qualquer forma, dá uma estudada em estrutura de dados e seus algoritmos de árvores, grafos, pilha, fila, etc.
Faça exercícios do sphere judge http://www.spoj.com/
I haven't tried UVA but used to code on SPOJ with Python and Java. They had different memory / time limits depending on the language. Most of the problems could be solved within the constraints unless you were using a suboptimal algorithm. What are your goals for UVA? I found online judges to be helpful in learning algorithms / problem solving.
Start with some easier questions. For example SPOJ allows you to sort problems by the number of users who solved them successfully those should be easier. Taking into account the success probability (%ACC) might also help.
For remembering syntax, code problems are more efficient than projects, since you don't have a lot of infrastructure to think about. There are a ton of them on http://www.spoj.com/, which supports Python.
Start writing programs that utilize what you're learning. Check out /r/dailyprogrammer, Project Euler, SPOJ to get started with small ideas. Start working on bigger projects. Find something that pushes you well outside your comfort zone and requires you to learn more about the language you're using.
> I have 10 months to get with the current times, and I have my eye on an Android job and a couple Java jobs. What do I do?
If I were you, I would
Get Oracle certifications for Java. It should be easy sailing with about of month of preparation. I believe there are three tiers available. The certs will let you immensely in clearing first-level HR/recruiter screens.
Do coding katas to make myself interview fit. This is applicable mostly to companies like Google or Amazon that does algorithmic interviews (but then they wouldn't really mind your Ada background either). Look at online judges like SPOJ (http://www.spoj.com/) or UVA (http://uva.onlinejudge.org/) or write solutions for problems on Rosetta code (http://rosettacode.org/wiki/Rosetta_Code).
I like using code eval, when I'm learning a new language. I start with the easy challenges and work my way up into the hard ones.
I also like using sites such as https://projecteuler.net/ and http://www.spoj.com/.
This guide seems fairly competent.
Check out the Java API Specification
Talk to people on forums, google things, experiment, etc.
Here's a good page with some problems/challenges you can take.
I recommend switching to C++. More versatile, easier to use.
Also, it's a good idea to try solving problems here http://uva.onlinejudge.org/ or here http://www.spoj.com/
This file might help sometimes: http://comscigate.com/Books/contests/icpc.pdf
I googled some starting exercises and I found these:
http://www.cplusplus.com/forum/articles/12974/ http://www.spoj.com/problems/classical/
If you get stuck on any of these, head straight to stack overflow and search for an answer. If your question hasn't been asked, make an account and ask it! You can also look at the C++ documentation, and there's quite a lot of explanation videos on YouTube.
Edit: Or you could ask questions on r/learnprogramming. Keep in mind that your main objective is to understand why your code works. Try to stay away from "Oh, I copied this code snippet in from the internet, changed it a little and now everything's working but I have no idea why". If you're getting stuck, or not having fun because it's too challenging, it's OK to take a step back. Start small and work your way up.
Ahh, VBA – just as nasty :D
It's actually what I really like about these kind of puzzles/challanges, and why I like them as a tool for intermediate programmers: one can solve them any way – and in multiple ways.
Started with a text editor? Go solve it again in VBA. Then python. Then pure C. Get bored? Try it in brainfuck.
I've did/used to do ACM challenges on spoj, a site with now thousands of such problems. I really think it's a great way to dive into a problem set, a language or as I said above: learn to tackle the same thing in different languages.
Never mind then, if you have to generate all primes up to the starting point, it will be much too slow.
The number range I gave is from this problem which give you a maximum of 6 seconds to get the answer.
SPOJ should be ok if you like to practice.
"missing a space at the end" - standard judging programs at SPOJ (>99%) ignore such a stuff.
You could start also somewhere here. With this problem, in the case of wrong answer, the judge lets you know what went wrong (try a do nothing program to see this).
Hi , It's me again , I'm trying to apply your concept to this task http://www.spoj.com/problems/MATT/ . In my opinion node in graph is oase+number of hours without water+ number of hours without food. I can contruct graph and then adjacency matrix apply the above algorithm and voila but I can't get this right for second test case so if you or anyone else could look a bit maybe I didn't grasp your idea correctly? Code is really simple and strightforward http://pastebin.com/AVVgSe2v Thanks in advance!
I'd recommend Sphere Online Judge, it supports something like 40 different languages instead of just Pascal/C/C++/Java, and I think has a larger database of problems. In a different vein, there is also Project Euler for more mathematical type problems.
Try solving easy programming puzzles in a basic text editor without syntax highlighting. You'll quickly find any holes in your syntax knowledge. There are plenty of sources of problems, but http://www.codeeval.com and http://www.spoj.com/ are a couple of options.
For exercises, Sphere Online Judge and Project Euler have a huge range. Also check out /r/DailyProgrammer, you'll get to see other peoples' solutions.
Kindly see this link SPOJ
> Your program will be tested on one or more test cases. Each case is specified on a single line with three integers (−10, 000 < a1 , a2 , a3 < 10, 000) where a1 , a2 , and a3 are distinct. The last case is followed by a line with three zeros.
I can't believe you did it in 0.09s with an n^2 approach. I guess I need much larger inputs to force C programmers into linear time. Then I'll probably have to use ask people to implement a random generator though...
EDIT: Try this one as well: http://www.spoj.com/status/VFRIENDS/