I am learning programming, I learned Java, I took a little experience with Android, I made a simple application, then I started to learn flutter, I took a course and i created a simple application, and now many people tell me and I see that the web is more widespread and has more job opportunities, and I want to be a Frontend developer What would you advise me to continue learning flutter or go to the web because I want to work as a freelancer or in a company?
I think everyone would agree that only you yourself can decide what to do with your own life. We have neither right to decide it for you nor will to bear such responsibility.
"I want to fly planes, but I also want to drive a bus or maybe I should be a train operator?" All those professions have the "driver/pilot" role in common, yet they are very different. Just because everything you mentioned involves programming, doesn't mean it is all the same and learning a few lines of code here and there doesn't make a pro, but I'm sure you know that.
If you want a decent job, I suggest you to explore your local job market, see what real companies need most. Then think about the future - will they still need it by the time you finish studying it?
Keep in mind that the tech landscape in always changing. Flutter can be hot now, but in few years - who knows? For example, nobody in their sane mind today really considers Xamarin and C# as something to learn for cross-platform mobile dev, but it had future.. at some point. Anyway, hope you get the idea.
personally, I advise you to expose yourself to as many technologies as you can to increase your chances of obtaining a job and also because there is no way of knowing for sure which technologies your future employer will require from you and hence I say go ahead and learn web development since it's one of the most wanted skillsets in software development.
as for freelancing it really depends on what type of freelancing jobs you want or will accept.
thank you.
You are right, it is easier to find a job in web development than in mobile app development, my suggestion is that you continue on web development, your aim should not be to become a front-end developer only but rather try to become a fullstack web developer.
If your goal is to quickly get a job, I would stick with Android and maybe learn iOS as well. There are plenty of jobs in mobile, even as a junior developer. I would not invest too heavily in Flutter, it has all but lost the hybrid mobile framework user space, at least from a jobs perspective. Pick up React Native if you must. Learning web from scratch will be difficult; there are lots of nuances and different technology stacks, and companies are often looking for a wide variety of experience.
Related
I have to develop an ERP System for a 2,000+ end users organisation.
Could you please suggest me with comparable points that among (Java or .Net)
in which technology I should invest money and time? Although I have done
some average projects in both, but this project is going to be very big in near
future in terms of scalability.
I want to know your experiences and some tips from you people, so that I can develop
and deploy this project efficiently.
I rate .Net > Java for this project only due to less development time available.
We have to use some Rapid App Development technology.
I have to deploy this on Cloud (Azure or Google App engine).
It will be better if I got answers from those people who works in both (.Net and Java).
I will appreciate answers from your experiences.
I would suggest creating a very small proof-of-concept project in both technologies, which do something real - like allow people to log in, see messages, and allow them to type in new messages, and log out again.
Even if the project is laughably small, if you do it well, you will have a finished product on each platform which have shown you by experience how things works and if you like the way you had to do them. You will be able to see if you can debug in the cloud, if you can profile when load testing, if you can do fast work inhouse which then works well when deployed to the cloud.
And you will need to figure out things. Are the online resources good? How responsive is the StackOverflow community for each platform when you ask questions?
Personally, I consider the ".NET is Windows-only" to be important. Except for that I do not believe there is any technical showstopper for either platform.
I think both approaches can be used to deliver this successfully. I would expect you to have the same amount of success/pain with either choice. When it comes to making a decision you should base it on the amount of expertise that you have to hand. That is, your own and that of your existing colleagues and the resources that you can acquire (new recruits, contractors, consultants etc.).
That said a couple of technical notes:
The Java approach tends to have more freedom, i.e. more frameworks and choice of technologies for various solutions (although GAE will bring in some restrictions).
There is less choice in the .NET space, but that is not always a bad thing. E.g. you tend not end up in tireless debates about the logging frameworks.
Java is starting to age as a language and C# is a bit nicer, however there a number of newer languages that run on the Java VM (Scala, Groovy, Ruby, Clojure).
I learned all basic java classes and how to use them. I like to learn Android App Programming. But one of my colleague suggested me to learn EJB. What is the best to learn?
It depends on what your goal is. Are you learning for personal interest, or for potential marketability?
I don't know anyone who learns EJB for fun. Also, its usage is waning in favor of lighter weight frameworks like Spring. I'd recommend learning Java web application development using Spring/JSP/servlets/MVC framework for marketability in your career growth.
Learning Android would be fun, would develop your skills, and would also provide some value for future employment.
Android, because you think that is fun.
EJBs (Java EE) are rarely fun and it is your interest that will carry you through efter the initial interest has settled. It is best if you find a project using the technology you choose, that you will actively use as it will give you the most incitament to continue in the long run.
They are totally and completely unrelated.
So, if you want to learn some Android programming (to develop APPs for Android platform), go with Android.
If you want to learn some Application Server (Java EE) programming, go with EJBs.
If you don't have a particular goal I'd probably go with writing an Android app.
EJBs will look good on your resume, but if you are inspired to make an Android app that may go even further.
It's always easier for me to learn something if I'm doing so to solve a particular problem.
It depends on your,but I think If U are in university, U can practice with both ideas. And in future, U can choose better;)
Android has more potential in terms of personal experimentation. You can experiment with various ideas and create apps for fun or business which will give you enough learning whereas EJB is application server programming. You can go for this as well if you are genuinely interested.
In any case, you can refer this site for you journey ahead: Android Tutorials;
and EJB from here: EJB Course
This is more a question of pros/cons between PHP and JAVA.
Iv been doing research, and iv narrowed it down to those two.
And in consideration, id like to go into mobile app dev...So thats +1 for Java.
Time taken to learn the language is not an issue...Just would like to know which is the most effective between the two languages mentioned above.
And on a slight note. Can Javascript work with Java? And what is the real advantage of that?
All answers are appreciated, thanks in advance.
I'm sorry, but PHP and Java are not the only choices. Ruby on Rails and Python's Django framework are both excellent tools for web development. While I haven't used it, Groovy's Grails framework is also very highly reviewed (largely by ex Java programmers). In certain (admittedly obscure) circumstances it's even advisable to do something off the wall like write a CGI program in C. It all depends on what you're trying to do.
Mobile app dev shouldn't influence your choice here, because no matter what web framework you're working with a mobile app is a whole new ball of wax.
So, here's the deal: asking people to compare PHP and Java really won't get you any meaningful answers -- you don't have the background necessary to understand what we'll say. You really need to figure out what you're trying to do before you choose your tool. It's like saying "I'm thinking about building a house, should I use a screwdriver or a hammer?" Here is what I would advise:
Go learn to program. Pretty much any language will do, but I'd suggest something nice like Python or Ruby. Spend a few months getting comfortable with programming first.
Pick a project. Make it something simple. When you know what your project is, pick a tool to use to complete your project. This may involve asking another SO question.
Rinse and repeat. Complete many projects. Once you've finished 5 or 10 web projects you'll be in a position to compare different tools. The more tools you use, the better. I'd suggest you do one in Ruby on Rails, one in PHP, one in Django (a python framework), and maybe even one in Java with JSP.
Once you've got that base of experience come back and ask this question again. You'll actually be equipped to understand the answers. Of course, once you've got that experience you won't need to ask the question because you'll already know the answer.
The one you know.
Some feedback:
Mobile app dev is not necessarily just web development.
Javascript is the language of choice on the web browser and works with PHP, Java, etc. on the server.
In general, one language is not more effective than another.
Seriously, judging by your post, I would advise you to start learning PHP and Javascript.
You already have a web browser so you can start writing javascript now.
As for PHP just install XAMPP from http://www.apachefriends.org/en/xampp.html and after a double click you'll be ready for web development.
After learning what its all about you'll be able to then check out Java and see if it is more effective in what you are trying to do.
Your question really indicate you need to learn alot about web development and programming in general, so I could answer your question but.. I'd recomend you go read up a little.
And in consideration, id like to go
into mobile app dev...So thats +1 for
Java.
How is that +1 for Java? We're talking about server-side languages.. you're not running your server off a phone are you? Sure, you can use Java to build apps in addition to running your website, but that's a different story.
Time taken to learn the language is
not an issue...Just would like to know
which is the most profitable at the
end of all the training.
Neither language will make your site more profitable, but you may be in higher demand with different companies depending on what you know.
And on a slight note. Can Javascript
work with Java? And what is the real
advantage of that?
Well... yes, but that's almost a nonsensical question. You use Java or PHP to produce the HTML that gets sent to the client, and then your JavaScript manipulates that. It's completely unrelated to what language you use server-side.
#comment: I can't really say which is more worth learning. I suppose Java is more versatile in that it has more applications outside the web. PHP is supported by more web-servers though (AFAIK), so you won't have trouble if you need to work on a different server.
I can't fairly recommend one over the other though. I've only used PHP for web, and Java for non-web. I like PHP because it's easy to pickup, easy to use, and all sorts of stuff is built into the language without any includes or anything. Has a big community, so there's lots of scripts you can download. One might argue that it's also a mess of a language, but as long as you aren't all uppity about that sort of thing, it's not really a problem. Java OTH... I don't know. I'm not a Java keener, that's all I'll say :)
Most of the answers here should be able to direct you towards your answer though I would just like to say if you are going to learn a programming language to make Web Apps learn Java, not because this will be the best tool for the job, each job is different, but knowing a full fledged language you will be able to quickly adapt to other languages.
You don't learn a language, you learn the concepts behind programming, then apply them to different languages.
I think you need to outline the context of your question. For example, if you are looking to get a job in IT, then the language that is most asked for in job ads is the one you want. If on the other hand, you have an application in mind that you would like to write, then you need to tell people (without giving away the details) what type of application it is so that they can tell you the most suitable languages/APIs to for that area.
But remember this - there is no such thing as a super programming language that is the best for everything. Each language is suitable for a range of tasks in a range of contexts, and is usually awful for everything else. Without the context of where the language will be used, no-one can tell you which is better.
Stop trying to kill two birds with one stone. There are different tools for different tasks. You can write mobile apps with Java but you can't write web apps with it. You'll have to use a server-side programming language such as PHP, Ruby on Rails, Django (Python), etc.
I'm planning to do a little project to expand my knowledge in programming. The application I'm trying to build is an Internet Cafe Manager (I Know there are a lot software out there that is similar to what I'm building.). I had chosen this project since it involves connecting to a network, displaying data and time, and has a client and server version of the application.
Now I wan't to get your opinion on what language and approach do you prefer for me to use. I am thinking I will be using Air or Flex since I have a some experience with flash and I am also a fan of good interfaces of AIR/Flex. Also I am thinking that there maybe some read AIR application I can integrate to rapid my development. Java is also in my list, Two of my programmer friend suggest that I will go for Java, But I don't have any background on java.
What Do you think? Please let me know your opinion.
Thank You!
This is definitely a subjective question but it really depends on what you are most comfortable with. Personally, I feel that the tools for Flex/AIR development are much easier to get started with the those of Java. This is especially true if you are taking about using an IDE for Flex development. Using the Flex framework could definitely allow you to get more done quickly.
Just my opinion.
Java is definitely a useful language but can be a big pill to swallow if you are just starting out.
Hope this helps!
My friend and I are planning to build a simple chat client to let people in a (physical, real world) room chat with each other (people chatting over the same wifi network, possibly pinging some external server to organize things by the external IP address of the wifi network). Partly we planned this as a chance to play around with Groovy, which we haven't done much with. But then I thought - damn, how many people have the Java 1.5 runtime? Maybe this is kind of thing where Flash would be better (when I say "Flash" I mean "Flex")? I hate ActionScript and I have very little experience with it, and I've no real interest in using it, but I'm thinking, if we want 9 out of 10 of our friends to be able to use our software, Java is possibly not the way to go?
My concern is in particular with the demographic we have in mind, which will tend to be freelancers and artists and individuals, rather than people at work. I'm aware that Java still has a decent overall market share, but I'm under the impression that its use is heavily concentrated in the computers that people use at work. Folks who don't work at corporations may not have a modern runtime?
I then decided to look up Java market share. It is surprisingly hard to track down info about specific JREs.
There was this on stackOverflow, but its focus is on RIAs, which isn't what I'm talking about:
What's all this business about Flash, Flex, Adobe Air, Java FX and Silverlight?
And then conversations like this make it sound like Flash is the only reasonable choice to make if you want people to be able to use your software without jumping through a lot of hoops:
http://forums.java.net/jive/thread.jspa?messageID=317749&tstart=0
This seemed like a reasonable summary of Java versus Flash issues:
Client Java vs (Adobe) Flash for web applications, what to choose and when
I found it surprisingly hard to track down actual market share data on particular JREs. And I found no easy way to find out if folks who with modern JREs installed are mostly using their computers at work.
So I'm open to hearing some anecdotal information here. If we built our simple chat client in Groovy/Swing, would our target demographic be able to use it? Is Flash the only reliable way to go here?
If portability is your goal, why not go for a JS only approach, perhaps using one of the COMET styles of push? Here's an article to learn more:
http://ajaxian.com/archives/comet-a-new-approach-to-ajax-applications
If a JS RIA isn't what your after. Then Flash/Flex are your next best bet. I'm usually biased towards Java as a technology, but based on your target app and audience I think you'll get more joy using a Flash-based technology.
Adobe understand RIAs better than Sun, which was kinda demonstrated by some high profile Java 2D devs moving to Adobe in 2008/09. Plus with recent Flash Player developments you'll get your app onto more mobile devices.
Obviously server-side in Java ;-)