• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

Self-Teach Java from rock bottom?

DarkDubzs

Limp Gawd
Joined
Jan 3, 2014
Messages
354
I want to finally learn a real programming language. I learned HTML in my HS Web Design class last year, but it was pretty basic i believe and i already forgot most of it. We just used Adobe Dreamweaver anyways after learning basic HTML tags and code with notepad at first. HTML wont really be relevant in the field of IT i want to work in, and either way, i cant survive off of just knowing HTML. So, time for Java. After i am proficient in Java, i want to move onto C, or C++, or C#... still not totally sure of the differences:confused:.
Anyways, since i have no knowledge at all of Java... or any programming language really, where can i start to self teach Java to the best and farthest extent i can? Are there any online sites or video series' on YouTube i can watch to actually learn and understand Java? I can get books too, but i dont want to spend much money right now, partly because i dont have much money right now (im just a HS senior with no job :() and i want to see if i can completely learn my first real programming language for free!
So yeah, where can i start? I need... er, i guess want something easy to understand, not just walls upon walls of Death Valley dry material and text... like in those stereotypical huge college textbooks with nothing but small Times New Roman font text for hundreds of pages. Where can i find some stuff like this? I would rather prefer a video series since i better learn by seeing someone do what they are teaching and explain. Im a mix of a Visual, audio, and hands on learner... im weird like that.
Sorry for this huge post, but i really need help and some points in the right direction. All i can find online are boring and bland webpages that dont really make much sense and expect you to already have some knowledge of Java and sometimes other languages... Im nearly at rock bottom as far as coding goes right now.
I hope to by the end of the week be able to create something tiny like this below, just so i can be like "Holy sh*t i made something and it actually works! I can actually code and will hack the Presidential mainframe computer!" But really, i just want that little self pat on the back.It would be so awesome to actually code and make anything myself, and actually understand what the hell i did. Something like this:
Hello_World_Perl_GTk2_2012-12-04.png


P.S. I have only a Windows based pc, and i dont really want to use Linux.
 
Before learning a language. Look into the basic concepts. Loop, ifs, data types, type casting to name a few. Then start with classes and objects . then learn java.
 
I personally think you'd be better of starting with a C or C++ (Not C#, as that's more like Java than C) first, and then moving to Java/C# later.

A background in C/C++ will help you to understand and appreciate Java/C#, whereas a background in Java/C# can lead you into trying to do as you would in Java/C# in C/C++ and finding it difficult and cumbersome.

One of the biggest things you can realize is that variables in Java/C# are really just pointers that automatically dereference and that you don't (usually) have to delete. After all, this:
Code:
StringBuilder builder = new StringBuilder();
should look a lot like this:
Code:
StringBuilder * builder = new StringBuilder();

Given the aforementioned, I think it only makes sense that one will fare better in Java/C# if they already understand pointers, since that gives you a better idea of how things in Java will behave.

If you want to stump a Java programmer who has never used C or C++, just ask them whether Java is pass-by-reference or pass-by-value. For anyone who has used C/C++, the answer is easy to understand, yet this idea can be a point of confusion even for 'experienced' Java developers.
 
If you want to stump a Java programmer who has never used C or C++, just ask them whether Java is pass-by-reference or pass-by-value.

You already got me stumped lol. But really, know any how i can self teach? Details in the OP.
 
I'm in a CS-1A (Intro to Programming) class now. We've started with C++ which is apparently a pretty good base so I'd have to agree with Dogs on this one. my .02
 
This sounds like a time to mention TheNewBoston on youtube. He has C++ and Java tutorials, and I think he contracted out a lengthy series on android development. I believe a lot of his videos use windows. Edit: http://thenewboston.org/tutorials.php - you can also just browse his youtube channel of course... same thing.

I'd consider looking at that to start. After you're done you may know more about what you want to do.

If you just wanted to figure out how to compile Android ROMs and Kernels, and to learn how to use GitHub...there are more concise guides, generally on forums. Aside from the giant XDA-developers forum, I think PureSpeedX had a good how-to section.

Books:

If you want just an easy hand-holding walkthrough of C++, I think "Jumping into C++" has examples using codeblocks in windows.

For more specific topics, I think even Carmack said he should have read the "Effective C++" series.

Then there are general software and design pattern type books... Code Complete was often recommended for the former type.
----
This isn't the right way to start for everyone... but I've known a few people who preferred these videos to what their Udacity course gave them. I looked at their Udacity videos... I agreed. For that particular class they had signed up for, the lecture was garbage.

edX, on the other hand, has some usable introductory courses... or so I've heard. You could sign up for the Harvard or UCB or whatever course appeals to you.
 
Last edited:
First, answer this question.

Why do you want to learn Java?

You didn't answer this question in your post, OP. This is equivalent to saying, I want to learn to play trombone, without knowing what a trombone is, what sounds it makes or what it's capabilities are. It's just dumb.

Once you answer this question affirmatively, with some logical backing behind it, you have to start from basic concepts. Anything you see in the image you posted gets thrown out. You're not going to be building any kind of GUI software if you want to learn programming. GUI is all presentational layer - it's usually not mission critical, and, hence, it's quite pointless to learn at first.

Another thing that should probably be mentioned - learning programming yourself takes a ton of self determination. Some people have that, some don't. There's a good probability that if you pick up a book, read a few pages, you'll quickly loose all interest and claim that it's too hard, doesn't make sense, or something along those lines. All of these are just excuses, and none are true.

So, there you go. I think a pretty good book resource would be the sticky at the top of this forum.
 
I wouldn't get stuck on 'learning' a curtain language, rather learn how to program (and on windows you need a pretty good reason to choose Java over C#/ Visual Studio).

I'm surprised no one has mentioned JavaScript, it builds on his existing experience of html and it is actually a very nice language to play with. Yes, it isn't perfect or suitable for every application, but it is a good start (plus just knowing your way around JavaScript and JSON opens a lot of employment opportunities) .

Also, this isn't something you just pick up overnight. Over a decade on, and I still face new challenges on a daily basis, this is something you either love or hate. On the subject of low level languages: C/C++ are nice but if you really want to get how computer's tick, assembler (I recommend z80) is the way to go!

While we're building a reading list. Add head first design patterns to the mix. It's not just a cookbook, it does make you think.

OP: What is your end goal?
 
I'd also like to know why the OP's chosen Java. It's difficult to give advice without any knowledge of the problem domains a person wants to tackle.

On the subject of low level languages: C/C++ are nice but if you really want to get how computer's tick, assembler (I recommend z80) is the way to go!
I'm a proponent of not learning super low-level concepts until they're absolutely necessary. I've deliberately learned only enough to be able to get a reasonable grasp of the assembly generated from my projects, and only because performance is a concern. I'm guilty into falling into various low-level traps myself, and in some ways I regret not having kept my knowledge at a higher level.

That's just me, though.
 
HTML wont really be relevant in the field of IT i want to work in

There's only so much time in a day and unless you have a specific need to learn Java I wouldn't waste my time on it. It would be good to let people know which field of IT you want to work in so you can get specific advise from those who are already it in.

For example, if you are planning to be a sys admin then there are much better choices such as shell script, powershell, python, perl, etc..
 
I want to learn some basic coding skills right now so i can have an understanding for when i start taking classes of it in college. Sorry to leave unanswered questions. I dont necessarily want to learn Java, i just heard that it is a good place to start for learning to program. Im not deciding on learning a certain language, but i just dont know where to start. Since it sounds like learning Java first might not be the best idea, I imagine i would have to learn the basics somewhere else, where and how?

Im not saying i want to become advanced in it quickly, i just want to start learning any way to code or program. I guess i need to get pointed in the right direction to learn the basics, then maybe i can go from there?

I want to work in Networking and Computer Systems. I see a lot of job ads for these kinds of jobs and most of them say they require knowledge of programming in things like Java, C++, etc. and even some more entry level jobs require this. I will begin going after a CIS BS degree this fall and i know in the upper division classes we will begin to take Into to Programming, then Java and C++, etc. but i want to build some knowledge in programming and these languages in case i want to get a job during college or summers in IT and if they require this knowledge... just so i can stand out possibly or just get through the HR filter.

So, please, i know i sound really stupid right now, but i mean, we all start somewhere and im just looking where to start to learn some basic stuff.

There's only so much time in a day and unless you have a specific need to learn Java I wouldn't waste my time on it. It would be good to let people know which field of IT you want to work in so you can get specific advise from those who are already it in.

For example, if you are planning to be a sys admin then there are much better choices such as shell script, powershell, python, perl, etc..

Thanks. Again, i dont really have a reason to learn Java in specific, i just want to get into some basic programming, and some internet searches were showing people saying Java is a good place to start, so that is why i assumed Java was the way to start.
Yeah, im open to learning any certain languages, but again, ill admit i dont know where to start. A SysAdmin is a job i know i would want to work as, so ill take those languages you recommended into consideration for later on down the road and look into them. Thanks again!
 
@OP

In highschool, I didn't give a second thought to learning Java or C++. I just didn't think it was useful. Then in college, I learned MATLAB and realized that programming/coding was like teaching an idiot how to make a PBJ sandwich. I needed to think systematically, logically, orderly, and cautiously. Though MATLAB doesn't really have a world outside of Engineering/Science with respect to quick analysis and small programs, it was a gateway drug. Come grad school, I picked up Python, Fortran, C++, and Bash within a month all because I had the thinking down. I just had to learn the semantics. Now, in my current job I learned Perl during my 1st week. Six months later, I was known as the office code guru. Now almost a year later, I am the Code God.

So, I say to you, start small with something like C++. Learn how to write simple scripts. Then expand onto more completed things like overloaded functions, error handling, process handling, etc.
 
@OP

In highschool, I didn't give a second thought to learning Java or C++. I just didn't think it was useful. Then in college, I learned MATLAB and realized that programming/coding was like teaching an idiot how to make a PBJ sandwich. I needed to think systematically, logically, orderly, and cautiously. Though MATLAB doesn't really have a world outside of Engineering/Science with respect to quick analysis and small programs, it was a gateway drug. Come grad school, I picked up Python, Fortran, C++, and Bash within a month all because I had the thinking down. I just had to learn the semantics. Now, in my current job I learned Perl during my 1st week. Six months later, I was known as the office code guru. Now almost a year later, I am the Code God.

So, I say to you, start small with something like C++. Learn how to write simple scripts. Then expand onto more completed things like overloaded functions, error handling, process handling, etc.

Thanks!
I cant come to figure out what you mean by that analogy :confused:?
So are you saying its a good thing for me to learn coding early on... or?
I do want to start with some small stuff, learn the basics of programming of course. Ive looked into the Hello World! script for C++ but of course, i have absolutely no idea what any line of code can possibly mean. So i need to first lean the bare basics of programming and of C++ and/or whatever language i will try first. I got some work ahead of me... now i need to look where to start... err, keep looking where to start.

P.S. if you dont mind me asking, what is your career currently? Thank you.
 
@DarkDubz

What I am trying to say is that you don't need to stress out about what you choose to learn first. At the core, coding/programming is about problem solving. You learn to generalize, theorize, rationalize, organize, experiment, prove and verify to create a robust solution. All that really changes is the set of tools and directions on how to use them.

You don't need to start reading code right away. Learn how to do simple addition, subtraction, looping, breaking, erroring, etc. Learn about simple libraries. Take a homework assignment and code up a solver for it. Then generalize the solver. Theorize how the solver will work for other homework assignments and think about how it could fail. Rationalize what you can actually do. You won't be able to handle every scenario immediately and probably won't be able to handle some edge cases. Come up with an organization for your code; ie. open files first, declare variables, input check routines, etc. Experiment with your syntax and write a rough draft. Prove that it does or doesn't work. Verify it for multiple cases. Rinse and repeat as necessary.

I am an Aerospace Engineer. I specialize in Computational Fluid Dynamics, Engine Design, and Combustion.
 
Last edited:
Learn C/C++, but also learn Lisp if you want to get all of the fundamentals of programming.

Forget about Java, it puts many limitations on the ways you are allowed to solve any particular problem. Java is a universal hammer, you sometimes have to use it to mount screws by hammering them in.

Also, the security is atrocious.
 
Last edited:
I think i may have found something decent, as in something organized and all in one place.
http://www.learncpp.com/
Good god, endless lessons :eek:
Try Stroustrup's "Programming: Principles and Practice Using C++" instead. You don't need to learn "C++": you need to learn programming through C++ (or some other hopefully relevant language).
 
If you want to stump a Java programmer who has never used C or C++, just ask them whether Java is pass-by-reference or pass-by-value. For anyone who has used C/C++, the answer is easy to understand, yet this idea can be a point of confusion even for 'experienced' Java developers.

It doesn't help matters that experts can't even agree on the terminology for the evaluation semantics. When someone asks me I simply say that Java is pass-by-value but all arguments are references. I've heard this called everything from "copied pass-by-reference", "pass-reference-by-value", and the ever awkward "pass-by-sharing". In the most strict interpretation I would say that Java is "pass-by-value".
 
It doesn't help matters that experts can't even agree on the terminology for the evaluation semantics. When someone asks me I simply say that Java is pass-by-value but all arguments are references. I've heard this called everything from "copied pass-by-reference", "pass-reference-by-value", and the ever awkward "pass-by-sharing". In the most strict interpretation I would say that Java is "pass-by-value".

While so-called experts love to come up with dumb new names for a concept which isn't at all alien, I would agree that Java is pass-by-value.

Of course, understanding that requires understanding that you're really working with 'safe' pointers in Java, as I mentioned when I suggested the thread starter learn C. When you pass a variable into a method, you're not passing the object in question...you're passing a pointer to it...and that pointer is passed by value. A new pointer is copied from the pointer you're passing in and that copy is destroyed when you leave scope. Someone who is confused and thinks Java is some weird form of pass-by-reference might expect to be able to write a basic swap method because, after all, they're able to modify objects with their methods, but this doesn't work because they can't modify the pointer they're using to keep track of the object by passing it into a method.
 
I will begin going after a CIS BS degree this fall and i know in the upper division classes we will begin to take Into to Programming, then Java and C++, etc. but i want to build some knowledge in programming and these languages in case i want to get a job during college or summers in IT and if they require this knowledge... just so i can stand out possibly or just get through the HR filter.

I think that you need to focus, your posts are all over the place as to what you want to do and why. Relax and think this through. Right now it sounds like you just want to rush into doing something for some reason.

There aren't many employers who will hire a college student do actually work on programming production code for anything serious unless that student has a long verifiable history of coding since birth.

Personally I think that CIS degrees are bullshit degrees created by (mostly private) Universities as a cash grab. If you want to work with hardware/networking then a 2-year degree is sufficient because it's an applied degree, not a 4-year "learn theory" degree. If you want to become a developer, and you choose to go to college for that, then you are much better off with an actual CS degree.

If you insist on enrolling in the CIS program, then get stats from your school of choice, in writing, that show how many enroll in CIS each year, how many graduate with CIS each year, how many of those who graduate are in debt and what the average debt load is, and how many of those who graduate are placed into employment.

CIS degrees are a scam imho.

Having said that, pick whatever language they use in your degree program and start with that.
 
I think that you need to focus, your posts are all over the place as to what you want to do and why. Relax and think this through. Right now it sounds like you just want to rush into doing something for some reason.

There aren't many employers who will hire a college student do actually work on programming production code for anything serious unless that student has a long verifiable history of coding since birth.

Personally I think that CIS degrees are bullshit degrees created by (mostly private) Universities as a cash grab. If you want to work with hardware/networking then a 2-year degree is sufficient because it's an applied degree, not a 4-year "learn theory" degree. If you want to become a developer, and you choose to go to college for that, then you are much better off with an actual CS degree.

If you insist on enrolling in the CIS program, then get stats from your school of choice, in writing, that show how many enroll in CIS each year, how many graduate with CIS each year, how many of those who graduate are in debt and what the average debt load is, and how many of those who graduate are placed into employment.

CIS degrees are a scam imho.

Having said that, pick whatever language they use in your degree program and start with that.

Then, in your opinion, what would be the degree to go for if you want to work in Networking, become something along the lines of a Network support tech, Systems Admin, and eventually become a Network Engineer? Because thats basically what i want to do. I want to build, develop and maintain computer systems networks and their infrastructures. Of course i will have to start at the lowest entry point like a Help Desk tech or User Support Tech, and throughout the years work my way up... who knows, i dont have a crystal ball, i may change paths slightly or totally change careers in the future, but for now that's my plan above.
I know i dont want a CS degree, all they learn is theory and how to do programming, software development, etc. I know i do not want to do that, i dont have an interest in software development or designing, nor computer engineering. So, based on looking at what they teach in CIS, it sounds like the best degree for what i want to pursue as a career. My only other option is private or vocational school, and after putting it all my choices under a microscope, i had come to the decision that, under my circumstances and in my situation, it would be best for me to attend a traditional state college and pursue a CIS degree. Just fyi, a CIS degree is technically a Business Administration major, you can choose to go for a CIS option/minor within that major, which is what i would be doing.
 
@DarkDubz

What I am trying to say is that you don't need to stress out about what you choose to learn first. At the core, coding/programming is about problem solving. You learn to generalize, theorize, rationalize, organize, experiment, prove and verify to create a robust solution. All that really changes is the set of tools and directions on how to use them.

You don't need to start reading code right away. Learn how to do simple addition, subtraction, looping, breaking, erroring, etc. Learn about simple libraries. Take a homework assignment and code up a solver for it. Then generalize the solver. Theorize how the solver will work for other homework assignments and think about how it could fail. Rationalize what you can actually do. You won't be able to handle every scenario immediately and probably won't be able to handle some edge cases. Come up with an organization for your code; ie. open files first, declare variables, input check routines, etc. Experiment with your syntax and write a rough draft. Prove that it does or doesn't work. Verify it for multiple cases. Rinse and repeat as necessary.

I am an Aerospace Engineer. I specialize in Computational Fluid Dynamics, Engine Design, and Combustion.
Well since i have no idea what looping, breaking, and erroring is, i have some work to do, but again, i have to learn the basics of course of programming in general, now i know that thanks to you guys. I thought every language had totally separate rules and concepts, i guess not totally, right? I assume you mean a homework assignment i find online? Ill take your advice into mind when i start trying to learn some of this stuff. Thanks!

Learn C/C++, but also learn Lisp if you want to get all of the fundamentals of programming.

Forget about Java, it puts many limitations on the ways you are allowed to solve any particular problem. Java is a universal hammer, you sometimes have to use it to mount screws by hammering them in.

Also, the security is atrocious.
Well, first i guess i have to learn the bare basics of programming in general. Like you need to learn to draw the letters of the alphabet, then understand what they mean, then learn how to put them all together and be able to make something legible. I guess thats a good comparison? Thanks for the other advice too!

Try Stroustrup's "Programming: Principles and Practice Using C++" instead.
Thanks. Ill look into that.
You don't need to learn "C++": you need to learn programming through C++ (or some other hopefully relevant language).
I think im finally starting to figure that out.
 
Also, the security is atrocious.

The security of the language is fine. The security of the applet sandbox on the other hand :rolleyes:

Most Java you'll see in enterprise systems is run server-side, there are better ways to do client side applications than using java applets.
 
The security of the language is fine. The security of the applet sandbox on the other hand :rolleyes:

Most Java you'll see in enterprise systems is run server-side, there are better ways to do client side applications than using java applets.

Someone in a different thread was complaining about how Java won't run if you're using an out of date version client side, and how it was a problem for them to support it because their web applications required users to use an older version of Java. They were so quick to label this as a Java problem, and didn't once think to ask why the web applications were running any Java code on the client side at all.

I think a large number of Java's 'problems' are created by misuse and developer clumsiness/laziness.
 
Then, in your opinion, what would be the degree to go for if you want to work in Networking, become something along the lines of a Network support tech, Systems Admin, and eventually become a Network Engineer? Because thats basically what i want to do.

Many community colleges offer an Information Technology Specialist Associate of Arts/Sciences 2-year degree, some of those colleges focus on a Cisco track where you graduate not just with a degree but also with the CCNA (if you pass the cert exam of course).

You can, for example, have a Bachelor's of Science in Biology and become a network admin, but that's just not a good use of your time and money considering that a 4-year program will cost you 2 years of opportunity cost and another 40k+ in tuition, fees, living expenses.

It may be good to create a new thread in the Networking & Security subforum here on [H] to ask there what degree would be helpful for getting a network engineering/operations job. My guess is that the overwhelming majority will point to a 2-year degree at a community college. Community college isn't shitty education, it's applied, you learn what you actually need to do the job rather than the theory of it when you go to a 4-year school.
 
You can, for example, have a Bachelor's of Science in Biology and become a network admin, but that's just not a good use of your time and money considering that a 4-year program will cost you 2 years of opportunity cost and another 40k+ in tuition, fees, living expenses.

...but that isn't the whole story, though. Upper management likes degrees. Whether or not it's the right thing to do may be for a different thread, but I've certainly found that they are of the opinion that people with bachelor degrees are far more likely to succeed in higher roles, so those are the people they promote into those higher roles.

If he gets a 4 year degree, there's the opportunity cost of 2 years of full time salary, but if he get's the 2 year degree, there's likely going to be the opportunity cost of a lifetime of accelerated career advancement. You also have to remember that the additional 2 years spent earning the degree need not be spent exclusively on earning the degree. Part time employment and internships can often diminish that opportunity cost. In my part of the world, 4 year students can easily make somewhere between $15/hr and $35/hr working as an intern before they've even graduated.

And it's not like the statistics are backing you up, either. Annual salaries across full-time employed workers 25 and up dichotomized by education level show that individuals with 4 year degrees take home bigger salaries than individuals with 2 year degrees, and that's been a trend for quite a while.
http://www.bls.gov/emp/ep_chart_001.htm

That aforementioned data set tracks only those who were successfully able to attain employment, too. Factor the employment rate into the equation, and things tip even further towards 4 year degrees. Not only are the average salaries for 4 year degree-holders higher, but these people are far less likely to be unemployed (Especially in Montana, but that, of course, is not that relevant).
http://www.ourfactsyourfuture.org/admin/uploadedPublications/4797_art-0412.pdf

I would, of course, like to find some very definitive statistics about this, but unfortunately there isn't a lot of publicly available data on computer industry salaries grouped by educational attainment.

It may be good to create a new thread in the Networking & Security subforum here on [H] to ask there what degree would be helpful for getting a network engineering/operations job. My guess is that the overwhelming majority will point to a 2-year degree at a community college.

He's already done that a couple times.

Community college isn't shitty education, it's applied, you learn what you actually need to do the job rather than the theory of it when you go to a 4-year school.

I would argue that it's both (shitty and applied), and I'd also argue that getting an 'applied' degree is not a good idea, because it often leads you to learning your job skills in the classroom and (because you didn't learn enough theory at school) your theory in the field. Academia is the place of theory. Vocation is the land of practice. Why would anybody want to reverse those two roles?
 
Dogs summed it up quite perfectly. While i wish i could just get an AA/AS degree, its not gonna get me anywhere in the busy city/metropolitan area where i live. An employer can easily find 100 other fresh-out-of-college kids with Bachelors degrees in CIS and CS, why would they want me with an Associates degree? Like i said before, ive looked well in depth of all my options, getting an AA/AS degree was one of them, and my best option was getting a Bachelors of CIS at a traditional state college.
In fact, about 90% of the jobs i find for IT say they require, bare minimum, a Bachelors degree in Information Systems, or CS. So i need a 4 year degree just to get past the HR filter and to be in the pile of "considerations." My cousin works in IT, he recently got his Masters too, he said at work he used to see some old lady at a desk all day just stamping resumes, she would look to see if the applicants had a Bachelors degree and place the resumes with them in one pile, and the ones without would be in another pile doomed for the shredder. I always knew he worked in IT, but i very recently found out he also got a CIS Bachelors degree, and he was making some damn good money even before he got his PhD, so that was a big moral booster when everyone else around me is telling me CIS degrees are shit. FYI, he got his Masters degree not too long ago and now he is a professor O_O

Anyways, Community college should be less that 10k for both years, and it appears i may even have money left over from Financial Aid :D Then comes actual state college, im not sure how much that will be yet or how much FA i will get, but hopefully it wont be too bad, and theres always loans (not that i want any debt) if worse comes to worse. I should be able to handle full time school and a part time job okay and that should also be able to offset the left over cost of college. Even as a Help Desk Tech., you can make maybe... 30k a year? Not much to most, but for a starter, i say thats pretty good.
 
...but that isn't the whole story, though. Upper management likes degrees. Whether or not it's the right thing to do may be for a different thread, but I've certainly found that they are of the opinion that people with bachelor degrees are far more likely to succeed in higher roles, so those are the people they promote into those higher roles.

I totally agree, the 2-year degree would just be a stepping stone to continuing education later down the road. At some point he'll need to pick up a Bachelor's and a Master's to get into leadership roles.

I'd also argue that getting an 'applied' degree is not a good idea, because it often leads you to learning your job skills in the classroom and (because you didn't learn enough theory at school) your theory in the field. Academia is the place of theory. Vocation is the land of practice. Why would anybody want to reverse those two roles?

Primarily because vocational training makes one actually employable and a lot faster/earlier. It's true that those with advanced degrees make more money in the long run, so it becomes a question of whether you want to risk a 4-year degree or get employment with a 2-year one and then do continuing education later in life.

I agree that a lot of it is situational depending on the person, the job market at the person's location if they aren't willing to move, and a whole bunch of other variables. There's a company in the town I am in that is hiring help desk staff at $15/hr with benefits, you just need to have finished High School and they will train you on the job. Now, $15/hr isn't much at all from where I am looking, but considering you just need to be able to do the job without the need of any formal education it's actually pretty decent. Positions are almost always open because people move up in the company and eventually move out after a few years of job experience.

I'd be curious which company employs inters at $35/hr, where I am from Interns don't get paid at all. ;)

Dogs summed it up quite perfectly. While i wish i could just get an AA/AS degree, its not gonna get me anywhere in the busy city/metropolitan area where i live. An employer can easily find 100 other fresh-out-of-college kids with Bachelors degrees in CIS and CS, why would they want me with an Associates degree? Like i said before, ive looked well in depth of all my options, getting an AA/AS degree was one of them, and my best option was getting a Bachelors of CIS at a traditional state college.

Since you have done your due diligence already then the answer to your original question is to pick whatever programming language they use in the CIS program.

Many folks struggle in the Intro to Programming course in college because of two things;

Programming is unlike other 100-level college courses. Let's say you are taking a Intro to Business course. The testing in that course is likely to be multiple choice questions in some online system (i.e. Blackboard). To do well in that course you just need to memorize the content and during multiple choice test you simply have to recognize the correct answer. In an entry level math course you learn a way to solve the math problem, it's like a if-then thing, and when you see the problem on a test you apply your known way to solve the problem.

In programming things are different. You cannot rely on reciting stuff from memory or applying a known algorithm to solve a math problem. In programming you need to first understand the problem, and then develop a conceptual solution, and then develop the actual solution. That requires a lot more skill and effort than Intro to Business does.

Also, especially with Java, folks are often thrown into the convoluted mess of classes without much explanation and the information overload makes people simply give up.

There's a decent book for absolute noobs "Java for Everyone" by Cay Horstmann. If you are looking to get a headstart on Java I'd pick that up. If you look at network security and penetration testing there are a lot of tools out there written in Python, so knowing some of that will help you modify the code if you need to. "Python for Everyone" also by Cay Horstmann makes a good intro book there too. Yes, I like Horstmann's writing, no, I am not him.
 
Primarily because vocational training makes one actually employable

...Then why is the unemployment rate notably higher for graduates of these programs when compared to graduates of 4 year degrees?

I'd be curious which company employs inters at $35/hr, where I am from Interns don't get paid at all. ;)

Pretty much every company who hires technology/engineering interns pays said interns. You'd be hard pressed to find a company that doesn't pay interns, and most companies pay their interns fairly competitively, since after all, they have to compete for the good ones.

Has anyone here ever tried Codeacademy?

I've looked at their 'lessons', and while they're probably fine for someone who doesn't know anything about programming and doesn't plan on really learning much, their material certainly isn't comparable to the typical college level course.
 
...Then why is the unemployment rate notably higher for graduates of these programs when compared to graduates of 4 year degrees?

Because the statistics you are looking at are comparing apples to oranges and are not accurate enough to show that job placements after vocational training is significantly higher than after college.

The problem lies in how the statistics are generated. You have those who have attained a "Bachelor's or higher" pitted against those who have "Some college, but no Bachelor's". 2-year degrees are statistically lumped into the same group that holds some guy who took one course in college at some point in his life.

We do know that there is a skill gap between unemployed people and open jobs. Depending on whom you ask there are approximately 3-4 million open jobs in the US right now many of which require skills above High School level but not necessarily Bachelor's level, and I am not talking about construction workers here. (but if you'd want to look outside of IT then there's http://profoundlydisconnected.com/)

I don't run a business that employs people, but if I were I'd rather hire the guy that came out of a two year program with a CCNA and solid applied skills than the guy who just spend 4 years on a piece of paper and doesn't know how to configure a router.

There is a decent write-up about the value of vocational training around the world "Youth Unemployment and Vocational Training" at http://ftp.iza.org/dp6890.pdf

If there are stats that compare 2-year vs 4-year degree holder unemployment rates straight up then I'd like to see them.

There's a write-up by a group of researchers from the Georgetown University Center on Education and the Workforce titled "Certificates: Gateway to Gainful Employment and College Degrees" (http://cew.georgetown.edu/certificates/) and they have found that those who hold industry certs but do not have a degree are more employed and often make more than those who do hold degrees because decent certs gained via ~12-24 month vocational training make people employable.
 
Last edited:
If there are stats that compare 2-year vs 4-year degree holder unemployment rates straight up then I'd like to see them.

C'mon, did you not even bother to read anything I said? I already posted a link that has this kind of data in this thread.
http://www.bls.gov/emp/ep_chart_001.htm

Why do I even bother trying to reason with people who aren't even willing to read my posts. Are you seriously trying to waste my time here?
 
If you want to stump a Java programmer who has never used C or C++, just ask them whether Java is pass-by-reference or pass-by-value. For anyone who has used C/C++, the answer is easy to understand, yet this idea can be a point of confusion even for 'experienced' Java developers.

Pass by reference. I've never used C or C++ for anything more than "print 2+2".

Back on topic, java is a decent language and if you want to get coding just come up with a project and start trying to do it. Read up on object orientation and you should be fine.
 
Pass by reference. I've never used C or C++ for anything more than "print 2+2".

Back on topic, java is a decent language and if you want to get coding just come up with a project and start trying to do it. Read up on object orientation and you should be fine.

Java is not pass-by-reference it is pass-by-value.
 
Back
Top