|
![]() |
j rich wrote:
Is there anything I should REALLY learn before reading head first java, like a prerequisite, or something?
j rich wrote:
What would your expectancy be for how long it'd take to be a decent java programmer?
j rich wrote:
Primarily, I would like to program small games, random programs to track stocks/funds. As well as IT stuff, key loggers, auto typers, auto clickers and bots.
(Keep in mind I will normally study from 3 - 6 hours a day once i get started.)
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
"If the facts don't fit the theory, get new facts" --Albert Einstein
Joachim Rohde wrote:As I said, it depends on how you define "decent". If you just want to program e.g. Hangman you might need only a weekend.
If you want to program something more useful, that is maintainable over a longer period of time, you will need A LOT of experience. Because programming is more than just syntax (else this would be sufficient for every programmer).
You've mentioned you'd like to program an application for tracking stocks. Just a few technologies that pops into my mind which might come in here handy:
- Java (okay, that's obvious)
- an IDE like Netbeans or Eclipse (you want to get away from the console... but it IS helpful to start programming without an IDE (like mentioned before))
- a Debugger (to find errors that you can't spot by just looking at the source)
- a build tool like Maven or Ant (because most IDEs use one of them and you might want to know, what the IDE is doing (or: what it's not doing))
- something for dependency management like Ivy or Maven (so you don't have to track all your dependencies on your own)
- a unit testing framework (like TestNg or JUnit) to prevent that your code does not work anymore suddenly
- a logging framework like Log4J because maybe you won't to use it for debugging purposes
- an understanding how the virtual machine works (or computers in general). Not that your application crashes at one point with an Out-of-Memory-Exception and your only thought is "Heck, I have XY gigabytes of RAM"
Back to the stock-program:
- maybe you want to make the GUI in Swing or maybe you want to use a RCP (rich client platform)
- I guess you want to save a list of stocks... what might it be: plain text or XML? Or maybe a database? A relational database? Or one of the types from the NoSql movement? Either way you have to learn either XML (which you need for the build tools anyway, to a certain degree) or SQL.
- If you are planing to use a database, an ORM might be useful (you'll need to learn SQL anyway to a certain degree).
- I guess for tracking stocks you'd also like to display the charts with a framework like JFreeChart.
- And if you are sharing your computer you might want to secure your application with Spring Security.
- You also might need some quotes. Depending from where you'll get your quotes you might need some webservices. Or if you like to parse a website (you'll need to know a basic understandic of HTTP) you will propably need a few regular expressions.
And till now I haven't even mentioned algorithms, design patterns and other nice stuff (like profiling, static code analyzers, dependency injections, refactoring, etc.) or basic concepts (like all the object-oriented stuff).
Do you need all this stuff? No, not really. For hangman just plain Java is sufficient.
I just tried to give you a brief overview that programming is more than just to know the syntax of a language. Way more.
If you will give it a try, don't have high hopes to get the results you are picturing in your head in the expected timeframe you set yourself.
Hope that makes my statement about the 5 years a bit clearer.
PS: and for games you will need again completly different technologies... else it would get boring or? :-p
j rich wrote:5 years or more to learn how to make simple programs? :s I don't expect to become a guru overnight or a master programmer, i was just hoping to be decent enough to make nifty little programs, I'm not really sure what i want to make, but i want to be able to understand the syntax a good bit, and be able to code something if needed, like an alarm clock on my computer that plays a song when the alarm goes off or something like that, nothing in particular, just stupid little stuff? is 5 years really a realistic time period? just to become decent?
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
j rich wrote:Bahahaha aarrggg! :p
I was hoping it would be easier then that, but atleast your response gives me a little better understanding of what all is needed... I guess it's one of those things, you get better as you go?
j rich wrote:
Thanks guys. I think it's time I dive in!
Claudius Calvus wrote:...
If I'd had more time, I would have written a shorter letter. -T.S. Eliot such a short, tiny ad:
Programmatically Create PDF Using Free Spire.PDF with Java
https://coderanch.com/wiki/703735/Programmatically-Create-PDF-Free-Spire
|