A
A
Aleksandr2015-01-05 02:51:51
Java
Aleksandr, 2015-01-05 02:51:51

Learning Java: Motivation, Perspectives, Short Plan?

I know that such questions are regularly raised on all development-related resources, but nevertheless I decided to discuss my own situation. Thanks to everyone who reads my post. And who will comment / advise / criticize - I thank you doubly. And I apologize in advance for the long text.

I'm going to start studying AP tightly, namely Java. I would like to know your opinions/criticism/advice.

The input is this. I am 30 years old and live in Canada. The first VO is not related to IT (language / legal), the second VO in IT is Interactive Multimedia Development for the Internet + Information Security, I studied in this area for 2.5 years. First year PHP/MySQL/CMS/JS/HTML/CSS/Action Script/Media Editing and Design. Another year and a half Infosec - Networking/PenTesting/Access Control Tech./CISSP Preparation/InfoSec Management/Project Management/Strategic IT + independently Linux, Raspberry PI projects and many other little things in this area.
Experience in IT - at the computer since the age of 12, from 286 with a 2400 modem. Then he was the owner of Dial-up BBS, a point / node in Fido, coded a little in basic / pascal / delphi (but YP knew at the level of a school programming circle, not very serious).
At the moment I work in a company (rather large) that makes games, but is not connected with development - I work in the Marketing / Tech Support departments. The main technologies that are used for our products are C++, Lua. I understand that C ++ is not exactly what I need - it is very complex, tied to specific architects, it will take years to reach some decent level. Lua is too niche and not in demand in the mass labor market.

Goals of studying programming:
- I have long wanted to try seriously in this profession, since childhood. In any case, even if it turns out that this is not mine - understanding the process will be extremely useful for, for example, Information Security or Project Management in IT.
- Learn, gain experience and in the future be able to take freelance work for several years, work for some time without being tied to a geographic location.
- Develop your own small applications - desktop/internet/Android attracts the most - there are already ideas for small applications for yourself / friends, maybe they will be useful to other people.
- Perhaps in the medium term, when experience allows - work as a junior in a developer position.
- The opportunity to participate in projects that are interesting to me, such as openworm, drone autopiloting, neuro-interfaces, image recognition, etc.

Why Java (and not Python, C#, JavaScript, Ruby, PHP):

- The average entry threshold. Not very easy, but not super difficult compared to many other languages. Understanding of the programming process, OOP. The possibility of a fairly easy development and transition, for example, to Python or C #.
- Many vacancies, serious full-time work in the North American market, juniors are required, and further there are development and income prospects (at the same time, it seems to me, there are fewer such prospects for other languages ​​​​with a comparable entry threshold). Also, such knowledge will not be superfluous in the Information Security Industry, but I still have to figure out the connection between these two areas.
- A very developed and versatile language, it can be applied in almost every area, many projects, many supported platforms.
- A lot of literature and training material, examples, analysis, a very lively community and in English. and in Russian.
- Development for Android.

Goal-setting should be as specific as possible, achievable in some real and estimated time frame, and most importantly - truly desirable, I sketched out the following list for myself:

Specific points and goals:

- Reading literature (Thinking in Java, Effective Java, etc.) ) and taking several courses (I'm currently doing JavaRush), watching videos and tutorials on Java Core. (a little boring and you will need to force yourself, but without the initial base in any way).
- The beginning of the practice - writing very small programs (more interesting than the previous one, but also a mandatory item).
- Search and find enthusiasts with the same goals as mine for joint learning, motivation, exchange of experience (we make it a social thing, it is also possible to introduce an element of competition).
- Search and finding a mentor (getting feedback in the learning process).
- Creating a couple of simple applications for yourself, polishing them and putting them on github (already some real benefit for yourself; start working with your own portfolio).
- Solution of labs for students for free / symbolic fee, and upon obtaining the skill and for a real reward (practice on real tasks, introducing a social element into the process, human and possibly material gratitude).
- Taking tasks on freelance and solving them under the guidance of a mentor. It is possible that I will spend more on a mentor than they will pay for this task, but at the same time there is still a lot of plus - The experience of completing a real task, the experience of receiving real money for this work, which will motivate me to continue to do it with less help.
Some optional things that can help (but should not replace the main process): blogging about your learning, talking on resources on this topic, more advanced search for people who have the same goal, and possibly a real joint project with them.

I know that the question "what language to learn" has set everyone on edge, that it is necessary to learn "programming itself and not the language", etc. I also understand how complex and multifaceted the programming process is, that knowing the syntax of a particular language is the tip of the iceberg. But with my introductory, when I don’t really understand whether it’s mine in general or not, do I want to devote many years of my career and life to this, or will it remain in the form of “periodically write a little software for myself / family / friends and take small order for freelancing" - it seems to me that the issue of choosing a language is quite relevant.

The stage in my life when something fascinated me and I passionately devoted myself to it was over, but it was replaced by the ability to work on the task at hand even with modest reserves of enthusiasm and at the same time perform it with high quality, discipline, the ability to properly manage time and resources , highly analytical thinking.
I have no illusions that I will become a brilliant programmer, a senior in some short period of time, but the fact that it is possible to become an average employee-coder, work conscientiously and receive average market money for it - I think with my data and education is possible. At the same time, I have a couple of live examples of how people did it.
Having already mastered some language and understanding that coding is what you want and can do (like the process itself - spend 6-10 hours a day figuring out the code, looking for solutions, etc.) - you can turn on along the way in deep study and career planning in this area.

Also some specific questions I would like to discuss:
- What technologies/frameworks/aspects of the language besides Java Core should be studied in terms of high demand for freelancing/full time job market? And which ones should you study first?
- How much does Jave need the security programming skill, and how can I combine the Information Security program I completed with Java programming? Does the market need such specialists?
- How developed is the freelance market for Java? Realistically, with a competent approach, after some time to receive income in this market, well, at least comparable to the income of a third of what a full-time junior in an average company receives?

Thanks again to those who leave their comments. Also I will be glad to offer mentoring or joint study - if someone is interested. I myself will also be able to tell you something / tell / help, for example, in learning English or about life in North America.

Answer the question

In order to leave comments, you need to log in

15 answer(s)
L
Lici, 2015-01-05
@Lici

Sorry, but face the truth - you do not know how to do anything in this life, except for abstract, aimless and useless study. Two higher educations and years of some other useless reading and views of something supposedly developing and useful. You are still an excellent student. It would be better if you watched the South Park and breakin bad, but the rest of the time you acted like a man - set yourself a task and methodically solved it. They didn’t watch the shitty courses, but they took the task and the blood from the nose did it. And now you just have nothing to do, write here many letters.
Until you change the methodological approach to your life in general, everything will be the same for you.

P
Puma Thailand, 2015-01-05
@opium

I settled here with a new neighbor recently, 20 years old Java programmer remote, works 60 hours a week, receives 5000 bucks a month plays volleyball every day, every other day in a rocking chair. He travels with us to the islands
. I think there is obviously a demand for Java programmers and it is horse-like if people are willing to pay that kind of money to twenty-year-old boys

I
index0h, 2015-01-05
@index0h

You are technical writers))
* You must understand that freelance - mostly projects for one person , maximum - several.
* Even drivers and applications for sim cards are written in java, I mean that the range of activities in this language is huge. Therefore, pointing your finger at the sky: "learn such and such a framework" is at least not correct. First you need to decide on the area.
* Security Programming - generally speaking, it doesn’t hurt anywhere, it all depends again on the application area, for example, the web has a golden rule: "the user is always lying, even if he does not know it, he is lying anyway." If you are making a console utility, for example, a converter of something, then the requirements will be completely different.
* At the expense of the freelance market - what's the problem then? Go to oDesk/fl/any_other_freelance_exchange and have a look.
But there is a caveat: java is still a mainstream language, and is most often used not on freelance projects.
Freelancing is actually more difficult than a stationary job, because it requires serious self-discipline, and without a team, you will grow more slowly. The work itself is not permanent, of course you can hit the jackpot in 1 month, but counting on the fact that it will be like this all the time is at least stupid.
So think about how to reach out to the intern and not work as a freelancer.

E
Einsteinnew, 2015-01-05
@Einsteinnew

The topic is interesting and has occupied me for a long time, I am 31 years old with very similar input data, two higher, but not those - I have been learning java for 9 months, a certain vision has already been formed on how to learn as productively as possible. I’m just looking for like-minded people and in the medium term I plan to master Canada))
I leave my email, [email protected], write
to share the rake that I have already stepped on)))

O
Oleg Gamega, 2015-01-05
@gadfi

If there is a desire, why not? )
I will join index0h ─ java for freelance is not the best choice, unless of course it's android, I'm not saying that it's not real, it's just that most java projects are really most often used not on freelance projects. (himself a freelancer, android developer)
Decide which direction you are interested in, if it is android, then you will have enough basics of java ─ in fact, understanding the OOP mechanism, collections, and in order to avoid stupid mistakes Java Little Tricks , Java Little Tricks. Part 2 (the most banal things but I often meet with their ignorance) and then the purely android kitchen begins
Java for the web is a completely different world, I won’t recommend anything, I just started learning spring myself (when writing different apis, I finally got php, my soul wanted something beautiful =) ) and so extremely boring dregs
#Don't waste time on students, it's not very effective in terms of experience and in terms of money
As for freelancing - why aren't you considering employment in local offices? with a team you will grow much faster

A
Adam_Ether, 2015-01-08
@Adam_Ether

- What technologies / frameworks / aspects of the language, besides Java Core, should be studied in terms of the high demand for freelance / full time labor market? And which ones should you study first?

In my opinion, frameworks are different and technologies are things that change a lot over time, so it’s not very cool to study them directly purposefully in isolation from reality. But with real tasks, experience will come, and inevitably with both frameworks and technologies. The main thing is to simply choose the area in which you will write programs, so that you yourself like it.
Any knowledge in Computer Science will be useful. At least for interviews.
Here I can only guess, but it seems that there (flancing) java is not as popular as at work on-site. Although I think something can be achieved there, but development will be more difficult and longer (than teamwork).
As a result, I can advise teamwork as a trainee, more practice, perhaps pair programming with more experienced colleagues.

A
asd111, 2015-01-05
@asd111

Try it. This is the only way to find out whether you like writing programs or not.
If you have to force yourself, then it’s not a fact that you will like to force yourself to write programs every day.
If you don't like writing programs, you can always do something else, especially with your education.

F
fomalhaut95, 2015-01-11
@fomalhaut95

Of the web frameworks, Spring is in high demand. You can also look at frameworks for other JVM languages: Grails (on Groovy), Play (Scala/Java). Probably a good idea to learn JUnit (writing tests), as well as Maven or Gradle

E
exapybara, 2015-01-12
@exapybara

I also decided to do Java professionally. Before, I only wrote small programs for fun: it's nice to see how something you create starts to work. Now I will be glad to like-minded people in Java. My email address is [email protected]

A
afna, 2015-01-19
@sulik93

I recently started learning Java by reading Thinking in Java.
I really liked your study plan.
I will be glad to communicate. [email protected]

A
Alexei1452, 2015-03-11
@Alexei1452

I also recently started learning Java. I read "Thinking in Java" and "Java. Professional Library (Horstmann K., Cornell G.)". I have the exact same situation. And yes, I agree, it’s difficult and slow alone ..
I would be glad to communicate, if anything, here [email protected]

G
Gamma Cassiopeiae, 2015-10-01
@GammaCas

Just started learning Java.
I will be glad to communicate: [email protected]

D
Dmitry K., 2015-12-13
@runbyte

I also started learning Java.
I decided to start with Head First Java, so to speak, from the most elementary. Then in terms of Horstmann and "Thinking in Java." Well, I'm thinking about taking a course on JavaRush, although $ 200 with the current rate is a little expensive.
I will also be glad to communicate: [email protected]

A
Alexey Grigoriev, 2015-01-19
@jsaus

I have the same situation as you.
If you want to chat with someone like you, write to [email protected], I will be very happy ;)

C
Ches_Ter, 2019-10-21
@Ches_Ter

Alexandr, how are you getting on over time? I, like you (then), are now at the start, so to speak. A couple of courses on Udemy videos from Yuotube and a couple of books. It is very interesting to know how it turned out for you and maybe find out your steps in the study and whether everything went well. Thanks in advance!

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question