As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm a beginner in programming. My experience so far is only in Actionscript 2 and 3. So I have a basic understanding of declaring variables, loops, arrays, if/then, do/while... I'm wanting to move to developing for Android phones so I'm wondering what suggestions people have for where to go next. Should I jump right to Android? Start with a 'beginning Java' approach? Or should I go some other route to beef up my knowledge of OOP concepts before launching into Android? I have my Dev environment set up and completed the Hello Android tutorial and I'm just wondering if I am going to be in over my head quickly?
I'm just wondering if I am going to be in over my head quickly?
Almost without a doubt. ^_^
My suggestion: Buy two books from Amazon.com
An Android development book. Work through every example in this book, do the problems at the ends of the chapters, take your time, understand what you're doing.
Buy an up-to-date Java book. Use it for reference when the Android book discusses something you don't understand.
This is very similar to what I did years ago to learn Obj-C and Mac development and it worked well. It will take you longer to get up to speed than diving into development and hacking something together, but at the end of the day you'll have a much better understanding of the principals and intricacies of writing code for the Android platform.
I should also mention my reasoning behind suggesting you buy books instead of using free Google results. Books are structured and highly edited. Assuming the author(s) are competent, a decent book will teach you what you need to know and leave out details that are either unimportant or more advanced that what you strictly need. It's difficult to impossible to find that level of structure in an online tutorial.
definitely nail down java syntax, so as little as possible confuses you in android development. android has some interesting objects to say the least--and their names don't hold traditional data structure names that you would be used to seeing. so, again, master the syntax, write some apps, then think about diving into android.
Yep, I'd say you need to learn java properly, and doing it exclusively through android is probably not the quickest approach. Try working your way through a recently published (it is essential that it covers generics) Java introduction book, then take on Android.
Android would be trial by fire. If you continue directly in Android, choose a few more simple hello world with bells on types of project. With ActionScript you were learning both a language and the platform, and switching to Android means learning a new language and very different platform. Most of the assumptions you acquired learning Flash will be wrong in Android.
I began learning Android with an understanding of JavaScript from front end web development. I grabbed the Wrox Android book and used the tutorials at http://java.sun.com/docs/books/tutorial/index.html to help me through the Java parts. I suggest diving head first into Android and going back to Java reference/tutorials where needed.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I know many topics been here before but I think mine will be the most updated question. I want to start on game development, my target platform is android. I have experienced in web desktop and android application but I have totally no experience in game development. I have read about game development vectors and other stuff which is kind of complicated to me as I am not that good in math. Android and desktop life cycle is very different so is it better for me to start developing games in desktop first and have better understanding.
How it works or dive into android game development?
I am not that good in math can I still be a game developer ?
I need high level guidance from game developers about the domain, its challenges and requirements.
You come very close to getting flagged as a invalid question, but I believe you are seeking guidance, so upvote and a attempt to answer your question.
Consider these when you develop games
Android bear framework may not be as good as other gaming frameworks for developing games. Mainly since with Android you need to do all the math yourself. Everything from movement to collision detection to correctly timed animation to multiple device support and testing.
Memory management is a huge issue, which you need to work on big time, if you cant make a game that runs smoothly and that can be fun to play dont release that game.
It must be fun to play, forget everything else.
You need a very good graphic designer to help you with backgrounds, characters and emotions. Without which it will be a very crappy looking game, which will be no fun to play.
You need to engage the user, so you need levels difficulty levels, which is called gameplay. So you need a good amount of thought into the story you are using to engage the user.
Bug fixes as it gets tested in the field is very important. Get a lot of people to play it free. Play it yourself hell a lot before you release.
Consider learning frameworks like carona. Bear Android will be a pain to develop it with the criteria above.
Its a passionate mans job dude, dont do it for fun :). Get in only if you love making games, not only if you love playing them. Get in if you have a excelling gameplay, character and story in mind. Get a good designer to understands color and who can do a artists job too. He will also need to give you images in various sizes, shapes and resolution, so he needs to be around until you release. Since last day you may realize that you need a lower resolution image for the entire set. A team delivers a game, cant be just 1 dude sitting and coding.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Is there any fun, educational game (maybe a flash game, etc.) that help learning the concept of programming and training your brain to think like a programmer?
Actually, I am not the one who will be playing it; it'd be my friend instead. I tried to help out my best friend through the university Java course (at my university, it is a kinda "sucky" course). I have practiced programming for many years, so for me it is not a problem. However, my best friend, whose major is not in computer engineering (but must take this course due to it being required), has a very hard time being introduce to Java by the boring professor and very confusing textbook.
I tried to simplify many context for my friend, but still it seems he gets bored with those confusing context very fast. Therefore, if possible, I'd like to introduce it to him in a more enjoying way such as a game.
There are several games available, this one is closest to programming and fun I've encountered so far:
light-Bot
light-Bot 2.0
Update
Here are the newest versions of the game, which include better explanatory texts and a friendlier drag/drop interface:
Lightbot
And a version for young kids in particular: [ages 4-8]
Lightbot JR
http://codingbat.com/
It might not look like a game.
But it's a site, that offers easily understandable problems, ranging from complete beginner problems to intermediate problems. Split up into categories based on the subject they're covering.
You write the code on the site, and then it tests it, and shows you the results.
The game part comes in when you complete an assignment and it gives you a point! (In the form of a star).
The constant gratification of being rewarded when you solve a problem makes for a much more pleasing and interesting learning experience I've found... It helped me and my classmates a lot when we had an incompetent Java teacher :p
Manufactoria
Just to keep updated, there is a new game CodeSpells which is quite an interesting game.
In the gameplay, the player is a wizard arriving in a land populated by gnomes, which is a group who used to have magic powers but lost it. The wizard has to help gnomes by writing spells in Java. Players have seven spells available to use, including levitating objects within the game, flying and making fire.
See: CodeSpells First-person Player Video Game Teaches Kids How To Program In Java
there was the game called Colobot days ago
CeeBot is great.
What about programming like playing a game:
Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web.
I would suggest implementing hangman, tic-tac-toe ( 2 player version to start with and later can be modified to play with computer).
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
So I apologize if I'm posting this in the wrong place but I thought asking the coding crowd would be best.
So I'm building a website with 3 developers. One dev is on front-end, one on PHP back-end and one on the database design. The core application of the website is actually much more complicated than i/we (the devs here) originally imagined it would be. The hardest part is in the database design and the design and development of the CMS to manage the database. Working closely with one dev, we have created the final version of the database. This is good news. Meanwhile, the rest of the site is being built with Zend with the other 2 developers.
Essentially what has happened is that the database designer that I have been working with has all the knowledge in his head because he worked with me consistently to design the DB by learning about the technicalities of the domain, industry terminology, the system requirements and so forth. He has also designed the CMS to manage the products that we will insert as per his data structure. Logically, he should really be the one then to code the core application because he knows deeply what he designed. However our system is in PHP and he's a Java dev. So I'm pondering what do to. He has agreed that he could learn PHP in about 2-3 weeks he estimated but admits that at the start, coding would be quite slow while he falls over a few times.
The lead developer on the other hand knows little about the requirements of the core app, the design of the database, the products and the business domain and would therefore take a long time to go through the same process of transferring all this knowledge until he's intimately familiar with everything. So its really a question of time. Would it be faster for a 6 year Java dev to learn PHP and build the core app or would it be faster for the 6 year PHP dev to pick up the knowledge from myself and the database dev?
Is it a close call? Is there a clear winner?
Any advice/suggestions?
Thanks
In essence I think that having experience of design and a good knowledge of how systems work is the most important thing.
Individual languages can be learned (and yes, there is a learning curve, while the syntax is absorbed, then the idioms, etc) and whilst having someone who knows a language when they start makes them a little quicker off the mark, I would choose someone with good design skills over someone with weaker design, but more knowledge of the language.
Language skills can be learned much more quickly than design principles.
In your situation, you have a problem. Two good people with different skillsets. Surely the ideal solution (if it's financially viable) is to have them work as team. Then both will learn much more quickly from the other where they are weak - and they'll be able to discuss design issues and rational. You should end up with a vastly superior product, and two developers whith enhanced skillsets and expanded experience. A win-win, if they can work well togther.
I agree with #Ragster - get the database guy and the UI guy to work together. There's even a buzzword for this - it is called pair programming.
But I'd add one thing. It sounds like a significant part of the problem is that the database guy has all of the knowledge in his head ... and there is nothing written down. This is not good. What happens if the database guy is run over by a green bus?
Maybe you need to make the database guy's number one priority to document the database design in a form that the UI guy can assimilate.
I would vote for using the experienced PHP dev rather than one new to PHP. Any experienced PHP dev should be able to take a brief from you and your colleague on what is needed and utilise the db design work already done.
A dev new to PHP will not produce code that is as well written as an experienced dev and that could cause you problems in the future.
The other solution would be to use Java for this application even if some of your other apps are PHP based. The two can live pretty well side by side.
I'd vote for the PHP-dev, working alongside the database/java dev.
That way, the database/java dev begins to get exposure to PHP, which will help his learning curve; while the PHP-dev will pick up the database structure and the all-important business rationale/details from the database/java dev.
You shouldn't create a dependency on any one person if you can help it, but distribute the application knowledge across your team. This way, you'll end up with a stronger team overall.
You should also ensure that the knowledge isn't maintained purely in anybodys head, but is documented. Always consider the dangers of a number 17 bus when all the knowledge is in somebody's head.
The nature of your question implies that you expect your programmers to develop in single-user mode throughout. I have honestly never met a situation where that was less appropriate than for you right now. Allow/instruct the obvious candidates to use pair programming, and the problem will simply dissolve into thin air. You will get better understanding within the team, faster results, better code, more unified solutions all around...
I am not being flippant here. If you have any historical or even ideological aversions to pair programming, please please please try to just get over them. It just is that much more efficient.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
over the years i have been employed in a permanent position with firms that did their development work in Windows SDK, VC++, and most recently Java; in my own eyes, I am language independent.
Should I move from Java to Delphi (assuming pay-scale remains unchanged)?
I'm concerned because, for the most part, the net presents a relatively bleak picture for this particular skill.
The TIOBE Index is an often cited source for estimating the popularity of programming languages. Java, C and C++ have been the top 3 for a very long time. As you can see, Delphi is a lot lower on the list (at position 10 at this moment). (Ofcourse you should not take the TIOBE Index as an absolute measure, but it does indicate something).
This can be an advantage as well as a disadvantage. There are probably a lot more Java and C++ jobs than there are Delphi jobs, but there are also a lot more Java and C++ programmers than Delphi programmers, so it's harder to stand out as a Java or C++ programmer among the masses. Having a specialism that not many people have, such as for example Delphi, may help you get a higher salary, though you'll have to search harder to find Delphi jobs.
Depends on what your goals are, but I believe that for regular apps the future bears name "GWT", i.e. Java. (I consider Delphi a history for quite a while, but that's JMO.)
It's definitely worth learning Delphi. A lot of software's still being written in it, stuff which people use and rely on. A lot of companies prefer to keep quiet about it, though, since it presents such a major competitive advantage over other, more popular languages.
For example, you ever work with VOIP on chat programs? In my experience, there are two basic categories: Skype, and The Other Stuff. Skype "just works", while the others tend to be very glitchy and unreliable. And it's no coincidence that Skype's written in Delphi while (AFAIK) none of the other chat programs are. That's just one example among many.
It never hurts to pick up another skill, but I haven't seen any Delphi job listings anywhere. I suspect you would be better suited picking up a new language/framework/platform with more "legs", such as WPF, JavaFX, Objective-C/Cocoa, ActionScript/Flex, or something of the like.
As a technical move, it's probably a good one -- Delphi is better thought out and more enjoyable to use. From a career perspective, however, you're probably right -- Delphi has been rather marginalized for some time now, and doesn't seem to be in the process of making a huge comeback.
I was using Delphi before I swtiched to C++ and then to Java. I don't think that moving from Java to Delphi is wise idea. Why so?
Java is widely used
It's easier to find Java job
More years of Java -> Better chance getting senior position job (java oriented)
Java is definitelly richer as for libraries
Java rocks in enterprise sphere, Delphi doesn't
It's easier to find resources for Java - from tutorials for beginners to manuals for professionals
Java runs on other operating systems by default, remember? (I know Lazarus, but can't compare port to nativeness)
From my exprience, more experienced programmers and software engineers kind of condemn Delphi programmers ...
Java is suitable for larger projects (means bigger money)
The only good reason for preferring Delphi over Java I can actually think of is making Windows GUI application. But since we have .NET and wonderful WPF, Delphi doesn't score even here.
You make your choice, but personally, I'd never switch back to Delphi (ok maybe if payment was too good to reject:))
The way you phrase your question makes me think you've got a job offer already for a Delphi developer position. If the language is the only thing stopping you, I say you should go for it.
It will add experience with another language to your resume besides being fun (learning something new). Just make sure you keep your skills in Java and C++ reasonably up to date when or if you need to move on.
Why limit yourself to one language?
A major problem with Delphi is that some people consider it an "easy" language. So there are Delphi programmers that can drag some controls to a form without any real coding knowledge. So if you are a good developer and skilled in Delphi, you won't have that much trouble finding a job.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
One of the major challenges for any java developer is try to keep in pace of development of the language and new tools. Java is evolving all the time and it happens often that I hear from a friend or colleague about some useful tool I had never heard of before.
I'd love to hear about how people find out when new java specs come out or an interesting, new tool is released? For example, what java blogs do you follow?
Listen to the Java Posse podcast. It is fun, it is relevant and gives a great feel of the Java (and wider JVM) community. It also has sections on Scala, Groovy, Android and (from time to time) Clojure.
Look for it on iTunes or your other podcatcher of choice.
Keep reading questions and answers on Stackoverflow. You'll learn something new almost daily.
Another blog I can recommend: http://infoq.com/
In general blogs and twitter are very good, if you come across a good coder or project, start following his/it's blog or twitter. To get you started, here's whom I follow on twitter for computer related stuff
I tend to browse directories like http://java-source.net/ and http://www.manageability.org/blog/java regularly.
Finally, I follow RSS feeds of http://freshmeat.net/tags/java-libraries and http://freshmeat.net/tags/java
HTH
http://www.theserverside.com/ has daily updates on new java/j2ee tools, resources and useful features/tutorials once in a while. That and SO are my daily visits.
and on a lighter note - http://thedailywtf.com/ :)
Attend your local JUG meetings.
Find your group here:
http://java.net/jugs-list
I follow articles on Dzone.
I find IBM developerWorks specifically the Java zone a good place to keep up with Java and the broader developerWorks site useful in keeping up with IBM related technologies.
my favorites :
Dzone Refcardz
java specialists
i hope these can help you , i got a lot from them
javablogs.com is quite helpful. It's some kind of blogs aggregator, 'blog community' for blogs which discuss Java technology regularly
Yes, you should follow blogs. Search for Java blog feeds with for example Google Reader, and add them. Then you'll get the latest news in one place.
I follow In Relation To actively. It contains the blogs from JBOSS employees. Following Oracle blogs makes also sense.
To keep updated your self with new technologies or tools, you can subscribe to RSS feed.
Can subscribe to any tool new letters, google news. Follow some bolgs. Use google reader.
you can participate in any mail group. This will keep you updated.
JavaOne is a great conference if your employer will spring for it (it's rather expensive, esp. if you're not already located on the west coast). It has a good mix of practical and higher-level, five-years-in-the-future stuff. It helps me to have a solid block of time away from the details of work, so I can focus just on exploring new technologies and ideas.
They're also planning some worldwide JavaOnes in places like India this year.
Coolest single bit of technology I found out about there: http://www.lambdacs.com/debugger/
A bit ancient, not network based:
spend time (have lunch) with fellow workers, speak about your duties, his problems, any hidden features of the used programming language you/he came across (from SO maybe), about the best IDE, ..., new games (ups, not working the whole time :-) )