LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 11-18-2013, 10:04 PM   #1
Rgrun
LQ Newbie
 
Registered: Nov 2013
Posts: 1

Rep: Reputation: Disabled
A few quick questions from someone wanting to get back into programming


Hello everyone, I hope I'm posting these questions in the proper place; if not, I humbly request the moderators move/delete this thread.

I'm a college student who's about to graduate, and as I've inched closer and closer to the end of my undergraduate education I've started to wonder what to do with all the free time I'm about to find myself with; I'd like to get back into programming, but I'm unsure where to begin the process of re-learning.

See: back in high school there was nothing I loved more than tinkering with computers, but my school didn't offer any programming courses aside from a small, two-quarter Java course; because of this, I spent hundreds of dollars on software development books the 18-year-old me had no chance of understanding beyond the basic concepts; but I did my best: I learned the fundamentals of C, C++ and Java on my own and entered college with the intention of majoring in computer science. A little over one year later, I learned that while I really did enjoy writing programs, I just wasn't really all that good at the math my school wanted me to master, and a 'D' in calculus barred me from going any further within the comsci department. Thus, I switched to editorial writing, and four years later this is where I find myself today.

When I switched majors I was extremely discouraged and gave up learning code on my own completely; today I remember only the very basics. Now, with this newfound free time dangling over my head, I think I'd like to give programming another honest shot, but I'm unsure of where to start my re-education. This is where I hope some of you programming demigods can help me.

My questions are:

-Are there any Java or C++ books that you gentlemen have found particularity helpful, ones that offer a solid, well-rounded instruction to a re-budding programming hobbyist?

-If I do manage to get pretty good at programming, will there be a certain wall I hit at some point due to my lack of calculus ability?

-Is trying to learn programming outside an academic environment really just a colossal waste of time?


Thanks in advance for all your answers. I'm sorry for the brief life story, but I felt it was necessary to provide context for my situation.
 
Old 11-19-2013, 12:10 AM   #2
PTrenholme
Senior Member
 
Registered: Dec 2004
Location: Olympia, WA, USA
Distribution: Fedora, (K)Ubuntu
Posts: 4,187

Rep: Reputation: 354Reputation: 354Reputation: 354Reputation: 354
Some questions for you:
  1. Have you looked at the first two "sticky" threads at the top of this sub-forum's first page?
  2. The ability to understand basic math is usually necessary for successful programming. What problem(s) did you have understanding calculus?
  3. I learned all my programming outside any formal academic environment, but that was in the 1960s, and few universities offered any such courses. If you take the "independent" route, are you prepared to look for professional certifications? (In today's environment, you would be hard pressed to get past the "Personnel Department" gatekeepers to talk with anyone without the proper "papers.")
  4. Have you considered trying the "independent" route of developing some "apps" for mobile (Android) devices? If you could do so, you would have some "cred" to enhance your CV.
 
Old 11-19-2013, 02:41 AM   #3
zhjim
Senior Member
 
Registered: Oct 2004
Distribution: Debian Squeeze x86_64
Posts: 1,748
Blog Entries: 11

Rep: Reputation: 233Reputation: 233Reputation: 233
I'm kind of in the same situation like you. I learned programming on my own in various languages in my free time and some c on university. But this was more doing the "homework" then actually learning anything new. I right now started to do a C project again and found myself mostly looking up functions and libraries that could assist. I'd say if you allready know the basic of some or more languages another book might not suite you that mutch. Besides when doing the step from procedural to objective programming.

As you I'm not that good at math. But might be able to grasp it if I have to solve a specific problem. Just to improve on my general programming skill I sometime digged into "software design patterns". Various strategies to solve a problem or a way to go about a problem in generel. This just takes the brain on a reroute when going about a specific solution/problem.

I also found that it helps to plan stuff. The actuall programming is just writing later on. So maybe you could check on variations of project managment.

All in all programming is more then just knowing a language or all the function. Dont forget the supplementary or even basic skills that help to be more sure about which way to go. At least I sometimes find myself having so many possible solutions for a problem that I hardly can decide. Also this gets easier with growing experience and going down the wrong way and rewrite stuff later.
 
Old 11-19-2013, 08:28 AM   #4
danielbmartin
Senior Member
 
Registered: Apr 2010
Location: Apex, NC, USA
Distribution: Mint 17.3
Posts: 1,881

Rep: Reputation: 660Reputation: 660Reputation: 660Reputation: 660Reputation: 660Reputation: 660
Quote:
Originally Posted by Rgrun View Post
-If I do manage to get pretty good at programming, will there be a certain wall I hit at some point due to my lack of calculus ability?
No. My career experience is typical of many colleagues during decades of employment in the programming world. I entered the profession with a four-year engineering degree. Never, ever, did I use calculus or differential equations in my work.
Quote:
-Is trying to learn programming outside an academic environment really just a colossal waste of time?
No, but the employment candidate who looks good "on paper" will get more interviews than the person who lacks the academic credentials. Not fair, but then life is not fair.

Daniel B. Martin

Last edited by danielbmartin; 11-19-2013 at 08:01 PM. Reason: Improved wording
 
Old 11-19-2013, 09:51 AM   #5
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
Quote:
Originally Posted by Rgrun View Post
-Are there any Java or C++ books that you gentlemen have found particularity helpful, ones that offer a solid, well-rounded instruction to a re-budding programming hobbyist?
I find online tutorials more effective than books. They are also free and easy to try, so you can see for yourself whether they work for you.

Quote:
-If I do manage to get pretty good at programming, will there be a certain wall I hit at some point due to my lack of calculus ability?
The programming I do professionally requires a very solid understanding of calculus. But that is extremely rare. Most programming tasks would not be affected by the difference between being an expert in calculus and being unaware that calculus even existed.

A larger fraction of programming requires a good understanding of trig. But even that is in the minority.

The bigger issue is how your mind works. I found calculus trivial and obvious. Most expert programmers I know had the same reaction to calculus. People who found calculus hard don't seem to think about things the same way as people who can become expert programmers.

I know a few people who went on to PHDs in math despite finding calculus hard and then got good jobs in software engineering despite not having any of the natural insight required to be competent at software engineering. Most software engineers are really terrible at it. So not having the natural skill is not a big impediment to getting a good software engineering job.

Quote:
-Is trying to learn programming outside an academic environment really just a colossal waste of time?
In my opinion, trying to learn programming INSIDE an academic environment is either a waste of time or a pure grab for credentials without skills. Either you learn programming on your own and the academic effort just gets you credentials or you don't learn programming on your own and the academic effort still just gets you credentials.

Last edited by johnsfine; 11-19-2013 at 09:54 AM.
 
1 members found this post helpful.
Old 11-19-2013, 01:30 PM   #6
dugan
LQ Guru
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 11,235

Rep: Reputation: 5320Reputation: 5320Reputation: 5320Reputation: 5320Reputation: 5320Reputation: 5320Reputation: 5320Reputation: 5320Reputation: 5320Reputation: 5320Reputation: 5320
Quote:
Originally Posted by Rgrun View Post
Are there any Java or C++ books that you gentlemen have found particularity helpful, ones that offer a solid, well-rounded instruction to a re-budding programming hobbyist?
Stanley Lippman's C++ Primer is a good C++ book.
 
Old 11-19-2013, 06:58 PM   #7
Kallaste
Member
 
Registered: Nov 2011
Distribution: Slackware
Posts: 363

Rep: Reputation: 85
In terms of books, I found Ralph Bravaco and Shai Simonson's book, Java From the Ground Up, to be very well written and thorough in its explanations. It is easily the best beginning Java book I have seen, and in my opinion will take you to the lower intermediate level of Java programming. From there I think the next step is to study data structures and algorithms in some form--without that, you may be able to write some programs, but there will be many, many problems that will come up on a routine basis that will be beyond your ability to solve. For the beginner level in Java I liked Frank Carrano's book, Data Structures and Abstractions with Java. I recommend this book wholeheartedly in spite of some negative reviews on Amazon, because I believe those reviews stemmed from the fact that the reviewers were looking for a more advanced study of data structures, whereas this book is simply intended to be an introduction. If you want something slightly more advanced (though still at the introductory level as far as the study of algorithms is concerned), Drozdek's Data Structures and Algorithms in Java is a good choice, although it places more emphasis on math.

Once you complete a tour of data structures and algorithms in your favorite language, you should be able to reasonably claim to be an intermediate-level programmer in that language. More skill comes with time, practice, and reading through the API documentation for your language (Java here). This may look daunting now, but it will become your most important reference if you get serious about programming. Like most things, it's not hard to navigate once you learn the rules.

Regarding calculus, I cannot say that I have ever used calculus as a programmer, but as johnsfine also eluded, I doubt I would be a very good programmer if I did not have the ability to grasp mathematical concepts and think mathematically. However, to be fair, calculus is of a slightly different paradigm than the type of mathematical thought you will usually be required to practice in programming, which is closer to logic and discrete math. In programming, you may be able to get away with not being great at calculus, but you need to understand discrete math. Along with any basic textbook, a great supplement for this is the Arsdigita course available for free online, again taught by Shai Simonson (I'm a big fan of Shai Simonson, actually). In fact, all of the Arsdigita courses you can find at aduni.org are great. And they're free, though they do offer an option of buying all their courses on a flash drive they will ship to you, which I wholeheartedly encourage anyone to do.

Of course, whether you can do all of this on your own depends entirely on you. If you are extremely self-motivated, you could do it, but it is a lot of work. It might just be easier to go to graduate school.
 
1 members found this post helpful.
Old 11-19-2013, 11:22 PM   #8
Drakeo
Senior Member
 
Registered: Jan 2008
Location: Urbana IL
Distribution: Slackware, Slacko,
Posts: 3,716
Blog Entries: 3

Rep: Reputation: 483Reputation: 483Reputation: 483Reputation: 483Reputation: 483
I was on a win 3.1 machine downloaded Borland C/ C++ Compiler and took my time just to learn how to set it up on the little computer. after that I went on to linux. But I learned more from that free compiler how it actually works than any other tutorial. Not saying there is better but. I was a truck driver using a lap top learning in my spare time on the road. I also had a associates in Computer science from my Junior College. That was cobal and fortran. (omg i am old)
The marine Corp had other ideas for me.
Now I live next to the fastest computer in the world and it is great talking to the students that come here and many of them very good programers learned it at home on there computer.
I have a good friend that has two degrees in other things he makes his money from doing linux support for a Chicago firm. He is an anthropologist. He grew up using Slackware and that got him in the door.
 
Old 11-20-2013, 12:24 AM   #9
pan64
LQ Addict
 
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 21,897

Rep: Reputation: 7318Reputation: 7318Reputation: 7318Reputation: 7318Reputation: 7318Reputation: 7318Reputation: 7318Reputation: 7318Reputation: 7318Reputation: 7318Reputation: 7318
You cannot drive a car from a book, you will need to have practice. Therefore I suggest you to look for tutorials, but first try to find a goal: implement a small game or similar.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
.evolution folder moved, corrected but wanting emails back Wiggles Linux - Newbie 5 01-08-2011 02:32 PM
Wanting to Start Programming SimpJee Programming 39 06-10-2006 10:43 AM
Wanting to give back to the Linux community sgmeunier LinuxQuestions.org Member Intro 2 06-02-2006 10:48 AM
Tip for anybody wanting to start programming philipuso Linux - Newbie 6 05-27-2006 10:25 PM
Wanting to create a small linux back up server mysticpain Linux - Hardware 7 08-18-2004 03:15 PM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 08:07 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration