PDA

View Full Version : Interested in learning how to program, where should I begin?




deosaa7
Jun 25, 2011, 02:40 PM
Hello all,

I'm a recent college graduate and I will soon be entering medical school. I'm interested in the hybrid field of programming for medical applications - it's a niche field where the expertise of a doctor is required in writing programs for cardiological and neurological software. But that stuff is ~4 years in the future and it's a long term goal.

I've always had an interest in programming and I even took introductory level computer science classes my freshmen year of college - I just graduated this past May. I did well in these classes but I don't count that because I largely forgot all the stuff I learned and projects I did. I want to start anew and my goal is to teach myself how to program. I have pretty decent time management skills (also math skills if that's relevant) and I'm pretty sure that I can probably set aside about 8-10 hours a week for this goal of mine. So I have time on my side and I'm pretty enthusiastic about learning but the problem is I don't know where to start.

There are many languages and many books and I'm not looking for any of those "Learn C++ in 3 days books" I understand you can't become a coder over night and it takes hundreds of hours of writing code to even become decent - I have no problem with that. I'm just looking to learn at my own pace (I'm usually a fast learner) and have fun doing it.

If any of you smart people on here know of a good program of studies through which I can learn..or could even give me a starting point, I'd appreciate it. Eg: I don't know what language to start with..some people say go with Lisp others say go with C++.



iJohnHenry
Jun 25, 2011, 02:58 PM
A Google search gave me MUMPS (http://en.wikipedia.org/wiki/MUMPS#Current_users_of_MUMPS_applications) ;) ???

Never heard of it before, but my programming pre-dates even C. :p

deosaa7
Jun 25, 2011, 03:19 PM
A Google search gave me MUMPS (http://en.wikipedia.org/wiki/MUMPS#Current_users_of_MUMPS_applications) ;) ???

Never heard of it before, but my programming pre-dates even C. :p

Thanks for your reply but before I get into specific stuff like that - I'd like to spent the next 2-3 years building a good, solid base which I can apply everywhere

iJohnHenry
Jun 25, 2011, 03:30 PM
Thanks for your reply but before I get into specific stuff like that - I'd like to spent the next 2-3 years building a good, solid base which I can apply everywhere

Oh, everywhere.

Got a dart (http://en.wikipedia.org/wiki/List_of_programming_languages)??

robbieduncan
Jun 25, 2011, 03:33 PM
Learn the basics in any language. Many constructs are cross-language transferrable (loops, conditions etc). Then learn the different major paradigms: procedural, object-oriented, functional, knowledge-based…

Once you've got all that down you'll probably find you can write most stuff you put your mind to and in many different languages.

Even for a fast learner mastering all this will take a couple of years at least.

wordoflife
Jun 25, 2011, 03:37 PM
I'm trying to teach myself programming as well. I'm starting off with Python first.

deosaa7
Jun 25, 2011, 04:19 PM
Oh, everywhere.

Got a dart (http://en.wikipedia.org/wiki/List_of_programming_languages)??

Ha thanks. By everywhere I meant, right now I want to just learn how to develop coding skills in a relevant language: IE I started with Qbasic and FORTRAN obviously neither of those 2 are used outside of modeling and academia.

balamw
Jun 25, 2011, 04:22 PM
Ha thanks. By everywhere I meant, right now I want to just learn how to develop coding skills in a relevant language: IE I started with Qbasic and FORTRAN obviously neither of those 2 are used outside of modeling and academia.

Relevant to what?

What do you want to program for, application, platform, etc...

This will drive the choice of languages and tools.

B

deosaa7
Jun 25, 2011, 05:15 PM
Relevant to what?

What do you want to program for, application, platform, etc...

This will drive the choice of languages and tools.

B

Yes I apologize on how ignorant I sound. OK let's say my one year goal is to program my own web applet which allows me to upload a few*pdfs of books, query the first page of the pdf for a title and search amazon with the title and retrieve a picture of the book cover *jpeg. Is this a simple or complex project and what languages and tools will I need to master to accomplish something like that?

jiminaus
Jun 25, 2011, 06:24 PM
program my own web applet

Then you're restricted to Java. Only Java can use to create web applets. If you mean something other than a web applet, well....


allows me to upload a few*pdfs of books, query the first page of the pdf for a title


Opening a file selected by a user is easy enough. However, assuming you're dealing with scans of books, then "querying" the first page of the pdf for a title is very difficult. You would need to run the page through optical character recognition software to convert the image into a text. If this is the cover of the book, this is not going to be easy even with an OCR library because the title will be in an unknown location, unknown font, unknown size. You would need to do some kind of image analysis first.

Even if the PDF was not scanned image, it's still not easy, because you'd need to identify which of the strings is the title (verses the authors, the edition, marketing text, etc.), and the title may be across of multiple strings in the PDF.


search amazon with the title and retrieve a picture of the book cover *jpeg.

Easy enough, assuming amazon allows you to do this. You couldn't legally just scrap their website and download the image. The would violate Amazon.com's conditions of use.

balamw
Jun 25, 2011, 07:16 PM
Easy enough, assuming amazon allows you to do this. You couldn't legally just scrap their website and download the image. The would violate Amazon.com's conditions of use.

Delicious Monster found this out the hard way and had to give up their iOS app for Delicious Library.

http://www.macworld.com/article/141584/2009/07/delicious_iphone.html

Definitely sounds like you should start simple. Javascript in a browser.

There's a video course at Lifehacker for real beginners and I'll dig up some other links I recently posted.

B

deosaa7
Jun 26, 2011, 01:58 PM
Delicious Monster found this out the hard way and had to give up their iOS app for Delicious Library.

http://www.macworld.com/article/141584/2009/07/delicious_iphone.html

Definitely sounds like you should start simple. Javascript in a browser.

There's a video course at Lifehacker for real beginners and I'll dig up some other links I recently posted.

B

Thanks I very much appreciate it.

Perhaps a simpler, interesting idea I had was:

Put a list of movies I know one line at a time into a MS word file - upload that to a website and have the website return to me the wikipedia page and/or IMDB page of each movie. Would this be a difficult task - and if not then what languages and skills could I begin learning to move towards this?

reputationZed
Jun 26, 2011, 03:07 PM
Hello all,

I'm a recent college graduate and I will soon be entering medical school. I'm interested in the hybrid field of programming for medical applications - it's a niche field where the expertise of a doctor is required in writing programs for cardiological and neurological software.

To the best of my knowledge most mission critical apps, cardiological and neurological certainly sound like they would be mission critical, are written in C or C based languages (C++, Objective C), with the possibility of a bit of low level assembly code thrown in. I doubt that scripting languages are robust enough for these kinds of programs. Deital's C and C++ books are excellent choices http://www.deitel.com/ or Kochan's Programming in Objective C http://classroomm.com/objective-c/.

The advantage of learning a C based language is that once you understand one of them it's not a huge leap to learn another. LISP is another animal completely. There's always been a bit of debate on whether or not it's best to learn C before learning C++ or Objective C, the argument being that learning C will teach you the basic foundations used in all C based languages. The counter argument is that you may need to unlearn C's procedural approach to grasp object oriented approach used in C++ and Objective C. That being said I don't know that mission critical apps embrace Object Oriented languages to the degree they are used in other fields as OO carries a bit of overhead.

LISP still has a following but is more of a niche language that bears little relationship to other commonly used languages.

robvas
Jun 29, 2011, 06:44 PM
I wouldn't start a newbie off with C. Way too complicated to accomplish the smallest things.

I'd start with something like Python or Ruby, or even Javascript, something interactive. Then move on to Objective-C so you can start writing Mac/iOS apps.

balamw
Jun 29, 2011, 07:11 PM
I wouldn't start a newbie off with C. Way too complicated to accomplish the smallest things.

I'd start with something like Python or Ruby, or even Javascript, something interactive. Then move on to Objective-C so you can start writing Mac/iOS apps.

Here's a link to the Lifehacker JavaScript "course" I mentioned earlier.

http://hackaday.com/2011/01/26/learn-to-code-at-lifehacker/

B

Hansr
Jun 29, 2011, 07:31 PM
Hello all,

I'm a recent college graduate and I will soon be entering medical school. I'm interested in the hybrid field of programming for medical applications - it's a niche field where the expertise of a doctor is required in writing programs for cardiological and neurological software. But that stuff is ~4 years in the future and it's a long term goal.

I'd assume this stuff is prototyped in R, Python or even Matlab so checking those is most likely a good idea. C++ for production for sure.