You're looking at Less Wrong's discussion board. This includes all posts, including those that haven't been promoted to the front page yet. For more information, see About Less Wrong.

Fivepak comments on Open thread, Dec. 22 - Dec. 28, 2014 - Less Wrong Discussion

5 Post author: Gondolinian 22 December 2014 02:34AM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (218)

You are viewing a single comment's thread.

Comment author: [deleted] 22 December 2014 05:53:23PM 2 points [-]

Learning programming languages:

I want to start learning programming languages for use in my occupation. What are some learning resources that would make this an effecient and worthwhile experience?

Comment author: emr 22 December 2014 07:36:34PM 6 points [-]

Can you give some more background?

Stuff like: What occupation? Do you have a goal or application already in mind? Are there any programming-related things you can think of right now that seem fun, (writing a video game, a program to play chess, solving math puzzles, doing data analysis, etc)?

Comment author: [deleted] 22 December 2014 08:36:24PM 2 points [-]

Certainly.

I work at the administrative level of libraries (both public and academic). Some of the jobs I seek require experience or knowledge of programming languages and the ability to work with servers and websites because the administrator must be responsible for the library's network and site.

I have some web building experience, but little experience with programming or server use, so I want to acquaint myself with the tools necessary to maintain a library's network and computers. For many of these positions, JavaScript, HTML, and Python make appearance alongside library specific system like MARC records (for cataloguing).

Comment author: Lumifer 22 December 2014 08:59:19PM *  4 points [-]

There are three different sets of skills involved in what you are talking about. I don't know which one do you want to focus on.

There is the system administrator (sysadmin) skill set related to "the ability to work with servers and websites" -- systadmins are "responsible for the library's network and site" and they "maintain a library's network and computers". It mostly has to do with deep understanding of Windows and/or Unixoid operating systems and doesn't involve that much programming per se and that mostly in shell scripts and/or swiss-army-knife languages like Perl.

There is the web developer skill set related to websites and it involves, nowadays, a mix of HTML (which is NOT a programming language), Javascript, and a database backend (usually but not always SQL).

And finally there is the programmer (err... software engineer) skill set which varies a lot depending on the context, but is generally about the ability to architect, construct, and maintain complex software systems or subsystems. Different subfields tend to use different programming languages so there is no single recommendation to be made.

Comment author: [deleted] 22 December 2014 10:24:08PM 2 points [-]

Thank you kindly for the break down.

Most of the positions I apply for would involve knowledge of sysadmin work and, rarely, web developer work. As you can likely tell, my position is not as the sysadmin or web developer, but rather as the manager under whom these positions work.

Comment author: FrameBenignly 23 December 2014 04:39:49AM 3 points [-]

Yes, that's a little different. IT frequently doesn't entail a lot of coding by hand. There's a lot of copying and pasting code from scripts you come across, and then editing the code to get it to run properly on your system. An introductory course in computer science will help with that, but some of the more advanced stuff you'll encounter will simply never come up. What you really need is basic familiarity with a wide variety of different frameworks; how to browse through them to find what you're looking for. The hard part isn't knowing how to solve the problem; it's knowing where to look to find the problem. On the web development side, you will want to see what content management system your company is using and learn how that CMS functions. You can use builtwith.com to figure it out if you don't already know. For each language or framework, make sure you focus on just the basics before moving onto a new one. If you try to go in-depth with all of them you're never going to get through it all. When you have to do something in that language, just open up a cheat sheet for it, and use that to guide you.

Comment author: [deleted] 23 December 2014 01:24:41PM 2 points [-]

I see. Thank you for the explanation and the link.

Comment author: Gondolinian 22 December 2014 07:10:44PM 5 points [-]

In addition to what is4junk suggested, you might want to check out Codecademy.

Comment author: [deleted] 22 December 2014 08:38:42PM 2 points [-]

Thank you kindly for the link.

Comment author: somnicule 22 December 2014 08:08:06PM 4 points [-]

Learn Python the Hard Way is a pretty solid resource, though I used it before Codecademy came out. Both are excellent practice-based resources for starting programming.

After that, just get python books and work through them. Tools like Flask and Django if you want to do web development, other stuff if you want to do other stuff. If you don't know if you

Stackoverflow is usually where google will take you when you look for answers to your questions, so you might as well bookmark it.

And if you don't have something in mind you want to make, but you want to keep practising, try doing some ProjectEuler problems.

Comment author: [deleted] 22 December 2014 08:39:30PM 2 points [-]

Thank you kindly for the suggestions.

Comment author: FrameBenignly 22 December 2014 07:19:23PM 4 points [-]

What is your occupation and what are you looking to program?

Comment author: [deleted] 22 December 2014 08:38:05PM 2 points [-]

My occupation is library administration. My specific interest is that many of the administrative positions I am looking at require some knowledge of programming in order to maintain the library's network. So, what I would be working with would be an organization-wide network (the organization being either small scale or multi-branch with each branch being small in scale).

Comment author: is4junk 22 December 2014 06:22:14PM 4 points [-]

Coursera and edx have several free courses.
https://www.coursera.org/ https://www.edx.org/

Comment author: [deleted] 22 December 2014 08:38:52PM 1 point [-]

Thank you kindly for the links.

Comment author: Interpolate 23 December 2014 03:18:23AM 3 points [-]

Code Academy: http://www.codecademy.com/

Harvard's CS50 course: https://cs50.harvard.edu/

You can also take CS50 through edX, which grants certificates: https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#.VJjeyf8AAA

Comment author: [deleted] 23 December 2014 01:26:23PM 2 points [-]

Thank you very much for the links.

Comment author: [deleted] 26 December 2014 01:00:50AM 2 points [-]

If you're interested in learning web development, I've been going through a great resource called The Odin Project. It pulls together a bunch of different free resources to take you from knowing nothing to being hired.

Comment author: [deleted] 31 December 2014 05:10:57PM 0 points [-]

Thank you for the resource. It is a very interesting one.