I have learnt Java, and am undertaking CS50 in a year. AMA about self-learning Java or programming using free resources.

4    08 Jun 2017 12:25 by u/TheComingOfTheGeeks

I'll be frank, I am posting it to talk to other people and just do my part in helping the community.

So AMA!

Edit: I am currently doing CS50 and have learnt Java from scratch in a year. So it's kinda link from my absolute nothing phase to me having succesfully made a fifteen game on C, but the principles remain same regardless of language.

37 comments

1

Do you know what object oriented programming is and why it is called that? Imperative? Declarative? Procedural?

How much underlying computer theory are you familiar with and why did you choose Java?

Assuming you approached it from the language and are lacking some of the underlying fundamentals (I had this problem with self teaching) I would recommend this wikiversity page and especially ch 6-8 regarding my above question.

1

I'll be frank, I do know what OOP is, and what procedural programming is, and I chose Java because I was an idiot when I started and wanted to build an android app, and soon I realized I need way more expertise to make a good one.

But yeah thanks for the resource. Very useful read. And yes, self-learning does lead to holes in underlying principles (I'll be taking a MOOC on that soon, from ocw.mit)

0

What's the difference between NP complete and NP hard?

0

I guess you are feeling pretty smug about testing me but I just made the game of fifteen so it's barely anything in my coding expertise.

This can help - https://stackoverflow.com/questions/1857244/what-are-the-differences-between-np-np-complete-and-np-hard

0

Yes, I felt smug.

My point was that software science/engineering has more than just coding. A good mathematical background is also useful.

Anyway, I applaud your achievement. I really mean it.

0

Where did you start?

1

I would say John Purcell's course on Udemy (free), along with Head First Java (free in a very illegal way). Also working along www.codechef.com exercises to help myself practice.

0

Did you know that array[index] and index[array] do the same thing in C?

int a[] = {1,2,3,4,5};
a[3] == 3[a];
0

Nope, I did not. Cool stuff!

-1

How does it feel to realise you have only learnt skills that will act as a hobby and provide no real income?

7

My current skills can barely help me get me an income but if I work some more, I can easily earn around 80k USD. So it feels pretty nice! The best part is that everything I need is available online for free, and I am learning skills (logical thinking process) that can be applied anywhere.

P.S. I am 16, so it's not like I am doing anything else. Not that age matters.

2

80k maybe in California. Kid ya gotta look at living wage quality of life. I'm in the mid west pulling down 70k doing systems administration. If I went to Cali and do what I'm doing now I would be pulling 120k, I'd have to live in an apartment instead of my home, I'd have a 45 min - 2 hour commute, and my savings at the end of the month would be far less.

The job is already stressful and if I didn't have student loans I'd be at another job.

Nobody will hire you if you don't have a piece of paper. They don't care if you have the Mona Lisa of code in your portfolio, without a degree you can't get your foot in the door.

Then you'll have to deal with racism from Indians, ageism when you get older and the fire you early, and honestly all the crap email because your the only one who knows how to do anything.

Take my advice and become an electrician when you graduate. You may be able to go into robotics if you're good at computers and electricity. At least they'll treat you like a man instead of the guy they can't fire because nobody wants his job.

0

Yeah maybe what you say is true. I am only going by stack surveys, and my talks with other IT professionals.

But here's the point - if not IT, what else? That's what I ask myself. IT was good enough as a hobby before and now it seems like something in which I can work on, and feel like I am making a progress.

So I just feel like doing my best with what I can. Anyway I am looking forward to do physics/math for college entrance exams, so it's not like I don't have a choice. And yeah paper matters, and I will get a paper, but experience and code can also help.

Edit: Wait. Indians are racist?

0

Ok, well the school you go to matters. It really depends on what you want to do. Personally, I'm a cosc theorist in my head and I develop algorithms. If your looking to make money, analytics is the goal you should shoot for (pick a school that trains we'll in databases, statistics, and business). If you want to develop games, choose a school that has good professors for ai and theory. In any event, java, c, and any other imperative languages are going the way of the dinosaur (they're still around because java is making a killing off of the jre). Pick a school that will teach functional programming well. If they don't have erlang or Haskell on the syllabus the school is probably crap. In any event, welcome to a shit industry.

0

I am Indian so probably the IITs, which you probably might have heard of.

0

Well at least that's one roadblock out of your way. As for the acronym IITs. Nah, haven't heard that. Wiki. Looked through there catalog, it appears to be relatively good. You should email one of the professors and ask them where most of their students end up. Most professors are fairly open and honest about their thoughts on if there school would be good to advance your goal, or if your goal is stupid.

0

The IITs are the best tech colleges in India, and all the major companies around the world hire from it, it's really hard to get into. India has a large population, and thus IITs are highly in demand, in fact I would say it's as hard to get into IITs for an Indian, as it is to an American getting into Ivy, maybe even harder.

I would really like to work anywhere as long as it's a good salary and is away from my hometown, If you have an Indian colleague, ask them about the IITs.

And have you seen Three Idiots? Bollywood movie about college education, see it with subtitles. A very good movie if you fast forward through the songs, though the songs are wacky and you might like it.

0

Yes Indians are racist, it's usually in the form of nepotism (promotion and hiring practices). I can understand the why though. In general east and west educational methods are different. When the two meet people gently think the other is stupid. west puts more emphasis on practical skills, east more on memorization. Plus there are language problems that will get in the way of group cohesion, and small etiquette slights because of culture.

The really big one for east meets west that I've ran across is that west will argue with the customer to find better solutions to projects. While east will give the customer exactly what they ask for. As I'm western culture I've heard western customers get really mad about this. I'm sure it goes the other way around and we come off as super rude to easterners. And so it goes.

0

Well, so you are saying that in USA, Indians are racist? That's a first. (to me)

0

Think of it this way. I grew up in a place where there was a single race. I didn't know racism because I didn't have any real life experience with it. Then I moved to a diverse city where people are mashing up all the time. They were already use to it and behaved in such a way. Having what you think of bad shit happen to you repeatedly drives the point home. Both sides have a majority of good people, but it only takes a couple of dip shits to ruin it for everybody. I really do hope you never have to run across these idiots if you ever make it over here, but if you do then you will understand.

0

Well thanks a lot!

0

I am 16

In that case, congratulations. You've done what most other 16 year olds cant do. Improve themselves. I also started around 15/16 learning programming for myself. While I only ever used it as an auxiliary skill to whatever I was doing for income, but as you said, it helps you become smarter over all.

I can easily earn around 80k USD

Good luck. With that. cough

What is your back up plan for income?

0

he can definitely earn 80k+, why not?

0

How long do you expect him to hold it and be happy and healthy at that income level?

0

I don't know, man. But it sure beats living by the bills.

0

Programming is good work, until you decide to get a family or .. In my experience (partially first hand, 2nd hand and 3rd hand), after 30, when it turns you into a shell of a man.

If you're going to aim for that income in the programming world, expand your knowledge into business and dev management. Extremely high chance that the guy telling the 80k programmer what to build makes more money than he does.

0

I don't know... I mean 80K is basically starting salary. Most practical learning happens on the job so if he keeps his eyes out for opportunities to learn and progress his skills he'll be at 150k by his late 20s.

0

How many 150k programmers of any kind do you know of? Compared to the number of programmers in their late 20s even? 150k is reserved for people in charge of programmers.

0

Every programmer that I know over 30 has a market value of 150+k USD

0

Do they earn that much? Do you happen to work for any of those large companies that actually need them and you hang out with them, thus you know by proxy in location? You could stand in the middle of a city and one will never walk past, but if you go to their place of work there will be more than one. For each 150K programmer there are many more than do not even get that far. And even more after that, that do not even get half.

0

Yeah, when I said market value I meant that they have earned and currently do in that range at multiple places of employment. Location matters a lot I guess, if you're somewhere in middle America it's probably less likely, but that money also goes a lot further over there.

The most I know someone makes in a programming role (non-managerial, non-architect) is 250k, which I admit is probably pretty rare (also they're no in their 30s, but 50s)

0

I know these exist, I am not debating those points.

For every 100 car park prostitutes there will be one high end one that earns more than majority of the population. All do the same thing in different styles.

I couldnt find stats for america, but they sort of exist for Australia, which is not that much different. I had to pick sydney NSW as it wont let me choose australia as a whole, but NSW generally has a higher population. The highest reported was 125k AUD and the median being 90k. You can play with it here:

https://www.payscale.com

I cant directly post any results.

0

The McDonalds near my home has an opening, so I can always try there.

Realistically: Computer repair? Electrical Engineering? Marketing? There are a few.

0

From 80k to mcdonalds? Id rather you strived for the difficult 80k. At least along the way you will learn newer and more relevant skills. Even if you pick up a cheap and nasty coding job along the way, you will at least learn what NOT to do. Often I find it more valuable to hire people who express their grievance with a previous employer for good reasons.

0

I edited it, so umm read it again I guess.

0

Computer repair is a good skill to have, but you will not find it a profitable one. Computers these days are cheaper to just replace than repair. You missed that age by about 10-15 years. I almost went into it and am glad I did not.

Electrical engineering opens you up to many many other paths. Requires a lot of actual school and certification though. Money and time. But if you can do it, would be good.

Marketing on its own is not profitable. Industry specific with product knowledge is good, but unless you get into advertising or data sales youre going to struggle to fight all the other marketers and in general they are very good at telling lies.

Really though, youre 16. If you have the inclination to learn, do it now. Do as much of it as you can. Become a machine of information and skills. Even without formal qualifications you will find that you will be picked more often just by displaying knowledge of a topic.