A few quick questions from someone wanting to get back into programming
ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
Have you looked at the first two "sticky" threads at the top of this sub-forum's first page?
The ability to understand basic math is usually necessary for successful programming. What problem(s) did you have understanding calculus?
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.")
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.
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.
-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
-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.
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?
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.
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.
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.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.