So it means working by own is important. and what if we concerned experienced people to gain more knowledge ?I was thinking about this on my lunchtime walk. It depends what you mean by 'good programmer'. Programming (or coding) isn't that hard. The concepts are easy to learn, and most programming languages follow them, it's just different syntax. Some people are just naturally inclined towards coding though. It helps to have an inquisitive/analytical mind, to want to know how things work.
But if you are talking about Software Engineering, then that is a different matter. Being able to design system solutions is a valuable skill. Can you think at a more abstract level, not just in terms of lines of code? Can you solve problems? And that is another thing that will gain you high respect, because the business world is full of problems. Are you able to solve your own problems, and more importantly, those of other people? Can you apply your knowledge?
On a purely technical level it's difficult to keep up with technological trends in the software world. But I would say that it's of vital importance to try and do this. Read about the latest developments in current programming languages. Try things out yourself. Otherwise you'll be in danger of getting left behind, and your skills becoming stale.
I found out that you can't teamwork with those who are lazy people because this cause you to work slow as well. At my study area, I found this situation often so I am taking my software project alone.Nothing wrong with learning from others.
Yes working independently is important, but what a lot of people don't realise is that software development is very much a team effort. A team almost always produces a better solution than an individual. So you have to be able to work with others. In my experience, not always an easy thing, given that the job of programming seems to attract the most socially introverted people on the planet.
I heard that iOS development is done on mac OS, its right ?That is a problem when not everyone in the team is as committed as you. In the professional world, this is rare, but not unknown for it to happen. However people with the wrong attitude are usually found out.
If you want to specialise in mobile app development, then the best way to go about that is to do it. And ideally you should build up knowledge in both Android and iOS development.
I heard that iOS development is done on mac OS, its right ?
Right now I can't afford expensive piece of hardware but we have cross platforms available to work on windows as well. But I don't know if they have any value in actual professional way.Correct. So unfortunately you'll have to fork out for an expensive piece of hardware.
So, you mean learning on cross platforms are better than not learning, right ?There are cross platform solutions available, and they are used, but I think they have limitations.
But you see what I mean about technology? Always something new coming along. It's like fashion.
I could be wrong, but I think Android and iOS will be around for some time though. So you're pretty safe learning those.
Web application development is also something you can make a career out of, because the web isn't going away any time soon.
at being open you mean ?I'm saying that cross platform solutions are used, but I don't have any figures on how popular they are. I've not come across that many jobs asking for skills such as Cordova. Most of the time, a company choosing such a solution will be trying to minimise the cost of developing an application across multiple platforms.
Visual Studio/C# is very much a Microsoft technology, and we all know how great they are at being open don't we?
RightYes. The whole MS ethos is about locking their users/customers/developers into their technology. Which of course, is a good business model isn't it? Apple do exactly the same.
If you want to specialise in MS technology, you can. Nothing really wrong with the that. There's only so many hours in the day though, and you can't know everything.
When it comes to web development, things are more open, because the web by its nature is very open. So there are a lot of accepted development standards/APIs/protocols, etc, that even the likes of Microsoft must comply with.
I'm sure MS would develop it's own flavour of HTTP if they could get away with it
Like I want to be an expert in Android app developmentThe term I've heard is "Specialsing generalist".
That is to say you should have a broad general knowledge of software development, but pick areas in which you can call yourself an expert.