Click here to Skip to main content
15,921,062 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: Self-directed learning Pin
BiggerDon11-Dec-14 7:23
BiggerDon11-Dec-14 7:23 
AnswerRe: Self-directed learning Pin
David Lormor11-Dec-14 4:11
David Lormor11-Dec-14 4:11 
GeneralRe: Self-directed learning Pin
BiggerDon11-Dec-14 7:37
BiggerDon11-Dec-14 7:37 
GeneralRe: Self-directed learning Pin
David Lormor11-Dec-14 8:36
David Lormor11-Dec-14 8:36 
GeneralRe: Self-directed learning Pin
BiggerDon12-Dec-14 8:38
BiggerDon12-Dec-14 8:38 
GeneralRe: Self-directed learning Pin
crazedDotNetDev11-Dec-14 4:27
crazedDotNetDev11-Dec-14 4:27 
GeneralRe: Self-directed learning Pin
BiggerDon11-Dec-14 7:41
BiggerDon11-Dec-14 7:41 
GeneralRe: Self-directed learning Pin
Nathan Nowak11-Dec-14 9:38
Nathan Nowak11-Dec-14 9:38 
It's not quite clear from your question what your primary motive is for learning new languages. From your post in general and the statement:
Quote:
Recently I started considering branching out. I figured I could take what I know about programming in a MS spreadsheet world and leverage that to Google Drive and OpenOffice, mainly to start learning more mainstream languages, e.g. Python and Javascript.

I get the idea that you might be driven primarily be a desire to advance your career. The desire to learn mainstream languages seems to be geared towards making yourself more appealing to employers.

However, from statements like:
Quote:
Of course, I am interested in your opinions as to which language(s) to go after to build more knowledge and understanding, whether you think this is a fool's errand, etc etc.

I get the sense that maybe you are interested in learning more for its own sake. That is to say you find computer programming interesting and you want to understand it at a deeper and more fundamental level.

Of course, these two things are not mutually exclusive and with many things the truth may be a combination of both. However, it is probably still a worthwhile question to ask yourself if your goal is to go fast or to go far.

In either case the question of which language to learn may not be the best one. If you are hungry for career advancement the first question you have to answer is, how will I demonstrate or provide proof of my new skills? You can spend every free minute you have over the next year studying and practicing a language like Java to the point that you become fairly proficient. However, if you send out a cold resume to someone and simply claim, "I know Java", the chance of getting an interview is slim.

There are ways with varying degrees of effectiveness to try and solve the how to get a job without experience and how to get experience without a job conundrum. It might be solvable by networking. If you know someone or someone who knows someone who will give merit to your claim that you know a language then this might not be a problem. You could also look to publish some of your personal projects or contribute to open source software. You could also take a course from a reputable institution. There is even some evidence that a few progressive companies are giving some small weight to MOOC course completion.

However, if you like your current employer and the possibility of advancement exists there, then that is probably your most likely opportunity for success. You just need to keep doing what you have been doing, finding problems and solving them. You may also need to devise a means of measuring or describing the benefits your problem solving has had for the company so you can present that to the appropriate parties at an opportune time.

Your basic approach, though, seems sound. You started by noticing mind-numbing repetition in your day to day work and automated that a way. So what's the next biggest problem? From your brief description and my experience with spreadsheet use in the wild I would say the next problem might be that your company is using spreadsheets where they would be better served by using a database.

If this is true then you could spend a day learning about relational databases and normal forms. After that you would have to look around the company to see what if anything is available or already in use. You'd pick some specific technology like MS Access, SQLServer, SQLite, or Postgres and start creating the next solution. Depending on the scope of the problem maybe you'd build a prototype or maybe you'd build a fully functioning solution. Then you'd pitch the idea to your bosses pointing out how the system prevents all sorts of errors and allows you to run all these different kinds of queries. Given the description of your skills you should be able to automate the import of the data into the new system so there would be minimal transition costs.

Maybe the problem is more one of sharing and display. In that case you might want to focus on learning HTML and javascript with the goal of making the data available via a webpage. Most managers love data and if you can give them easier access to it or show it in a better way they are going to love you for it. Making something web based doesn't automatically make it better but there could be real gains here.

Again, I don't know the specifics of your situation but if you keep finding and fixing problems someone is going to take notice. If it doesn't lead to promotion within your company it is certainly going to make for some good bullet points on your resume. You will also be able to truthfully claim that you have job experience with the given technology. My point is, though, that the tool choice will be much better informed by the problem you identify than by the well meaning guesses of strangers.

Of course, career may not be your primary focus. You may be motivated by less tangible desires. Maybe you've been doing programming for a while and you recognize how powerful it is. That intrigues you and makes you want to learn how to better harness that power. You want to understand programming at a fundamental level. Yes, this will likely lead to career advancement too but it is more about satisfying your curiosity and the journey being its own reward. If this is the case then my advice is nearly the opposite of what I would suggest for the career path.

In the career path you can move fastest by staying close to what you know. Maybe you go from VBA to C#. You pick up a little power and structure but you stay within the familiar MS ecosystem. However, if your goal is to stretch your mind then you do that best by exposing yourself to ideas that are the most different from what you already know.

If you really want to learn about core ideas that underly computer languages rather than just another syntax I highly recommend the Coursera course programming languages[^] from the University of Washington. A session appears to have just ended but if they allow you to enroll now, do it. You won't be able to get a passing grade for your assignments because the submission deadline will have passed but you'll still get the knowledge. If you later want a good grade to show an employer you can retake the course and will likely pass with distinction. Given the description of your background I can almost guarantee you will have several aha moments while taking the course. The instructor explains core ideas in such clear terms that you will likely shave years off your computer programming maturation process.

While taking the course you may see other classes that interest you and you are welcome to explore in whatever direction you feel the strongest pull. However, if you finish the course and don't know which way to turn here are some other suggestions.

There is MIT's old intro to computer science course 6.001 which I think it still available through OCW. This course follows Abelson and Sussman's "Structure and Interpretation of Computer Programs". There is also the new version of the course, 6.01, which is taught in Python. I don't think the new version is nearly as mind bending as the old one but if you really wanted some exposure to Python it has that going for it.

After that I would suggest getting your hands on a version of Smalltalk like Squeak and spending a couple of weeks with it. A decent book to go along with your exploration is Squeak by Example. The UofW course used to use Smalltalk instead of Ruby for the final section of the class and if I had my way it still would. Smalltalk's live environment is not really quite like anything else and as far as OOP goes it doesn't get much OPPier. Smalltalk is a pure OOP language. I never really understood what Alan Kay meant when he said languages like Java weren't really OOP. It was only after a couple weeks of playing with Smalltalk that I started to understand what he meant.

After that I'd recommend checking out Prolog. You don't have to try and master it but spending a couple weeks with it, say working through the first seven chapters of "Learn Prolog Now!" by Patrick Blackburn, Johan Bos, and Kristina Striegnitz, will be an enlightening experience.

After that you're going to have a pretty expansive view of computer programming. You could look into purely functional, statically typed languages like Haskell or maybe a stack based language like Forth. Though I'm not sure stack based languages really introduce any new concepts over what you will have already learned.

At any point along the journey you may want to stop and actually apply some of the wisdom you have accumulated. I strongly encourage you to do so. After some amount of practice you may become bored and want to move on again and you'll be able to because there is always some new area to explore in the world of computers.

Before I go, let me reiterate in case it got lost in all the above. If you're not sure which way you want to go. You just know you want to learn more. I highly recommend the University of Washington's programming languages[^] course offered on Coursera. I would be shocked if you didn't find it an eye opener.

Whether your goal is advancing your career or your knowledge I think asking, "Which language should I learn next?", may not be the right question. You should either be focusing on what problem are you trying to solve or what concept are you trying to learn. Once you answer that question there may be only one or two languages that actually fit the bill and the choice between them will largely be arbitrary.
GeneralRe: Self-directed learning Pin
BiggerDon12-Dec-14 5:42
BiggerDon12-Dec-14 5:42 
GeneralRe: Self-directed learning Pin
Fidel Orozco Gómez11-Dec-14 18:11
Fidel Orozco Gómez11-Dec-14 18:11 
QuestionAnyone out there using only 1 monitor? Pin
Slacker00710-Dec-14 3:27
professionalSlacker00710-Dec-14 3:27 
AnswerRe: Anyone out there using only 1 monitor? Pin
OriginalGriff10-Dec-14 3:30
mveOriginalGriff10-Dec-14 3:30 
GeneralRe: Anyone out there using only 1 monitor? Pin
Slacker00710-Dec-14 3:33
professionalSlacker00710-Dec-14 3:33 
GeneralRe: Anyone out there using only 1 monitor? Pin
Albert Holguin10-Dec-14 4:36
professionalAlbert Holguin10-Dec-14 4:36 
GeneralRe: Anyone out there using only 1 monitor? Pin
Slacker00710-Dec-14 4:43
professionalSlacker00710-Dec-14 4:43 
GeneralRe: Anyone out there using only 1 monitor? Pin
Albert Holguin10-Dec-14 5:12
professionalAlbert Holguin10-Dec-14 5:12 
GeneralRe: Anyone out there using only 1 monitor? Pin
Rob Philpott10-Dec-14 3:34
Rob Philpott10-Dec-14 3:34 
GeneralRe: Anyone out there using only 1 monitor? Pin
OriginalGriff10-Dec-14 3:36
mveOriginalGriff10-Dec-14 3:36 
GeneralRe: Anyone out there using only 1 monitor? Pin
Rob Philpott10-Dec-14 3:39
Rob Philpott10-Dec-14 3:39 
GeneralRe: Anyone out there using only 1 monitor? Pin
OriginalGriff10-Dec-14 3:40
mveOriginalGriff10-Dec-14 3:40 
GeneralRe: Anyone out there using only 1 monitor? Pin
Vark11110-Dec-14 5:48
Vark11110-Dec-14 5:48 
AnswerRe: Anyone out there using only 1 monitor? Pin
Rob Philpott10-Dec-14 3:36
Rob Philpott10-Dec-14 3:36 
GeneralRe: Anyone out there using only 1 monitor? Pin
Slacker00710-Dec-14 3:41
professionalSlacker00710-Dec-14 3:41 
AnswerRe: Anyone out there using only 1 monitor? Pin
vonb10-Dec-14 3:36
vonb10-Dec-14 3:36 
GeneralRe: Anyone out there using only 1 monitor? Pin
Slacker00710-Dec-14 3:40
professionalSlacker00710-Dec-14 3:40 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.