How do you learn things which are not googleable?

  • (2 Pages)
  • +
  • 1
  • 2

22 Replies - 2261 Views - Last Post: 06 May 2016 - 10:37 AM

#1 Hype  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 31
  • Joined: 12-December 15

How do you learn things which are not googleable?

Posted 29 March 2016 - 07:08 AM

Hello everyone. Reading books and tutorials is all well and good for learning the basics but at some point you're going to want to do something that simply doesn't have a tutorial. You might find bits and bobs to help you along the way but ultimately you're going to need to figure this out yourself, so how do you go about doing this? does it just come naturally with experience?

Imagine for example you wanted to make a program that automatically transfers files from your cloud account to some FTP server once a day at midnight. I don't know why you would want this but just assume that you do. How on earth do you go about figuring this out as there might not be a tutorial outlining each step.

So what I'm basically asking is once you're at the intermediate / advanced stage of programming. Where do you go to learn new stuff? How do you learn the more advanced stuff which isn't covered in a book?

Is This A Good Question/Topic? 0
  • +

Replies To: How do you learn things which are not googleable?

#2 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 13392
  • View blog
  • Posts: 53,451
  • Joined: 12-June 08

Re: How do you learn things which are not googleable?

Posted 29 March 2016 - 07:15 AM

Software design. If you are looking at a problem and still going "where do I start?!" then most likely you are not 'intermediate'.. Memorizing syntax is fine, but not being able to pick a problem apart, break it down into working components, actors, actions, data need, etc then comparing that do basic help doc search on MSDN for existing namespace files is a problem.
Was This Post Helpful? 0
  • +
  • -

#3 astonecipher  Icon User is offline

  • Too busy for this
  • member icon

Reputation: 2329
  • View blog
  • Posts: 9,356
  • Joined: 03-December 12

Re: How do you learn things which are not googleable?

Posted 29 March 2016 - 08:36 AM

You break the problem down in to managable parts. Your scenario for instance, is actually quite common and I deal with receiving those files on a daily bases.

How to transfer a file in (language).
How to automate a task by time of day.
Was This Post Helpful? 0
  • +
  • -

#4 maceysoftware  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 348
  • View blog
  • Posts: 1,491
  • Joined: 07-September 13

Re: How do you learn things which are not googleable?

Posted 29 March 2016 - 08:47 AM

I am in agreement with Modi, I personally see myself at as a intermediate programmer but on the lower end of the scales, I know a lot of other developers that are better than myself however I spend a lot of my day helping other developers out at the same time.

If there is a project I want to do then I break the project down to smaller chunks and tackle them 1 at a time. for my own curiosity I wanted to find out how to get a tool strip bar into a forms title bar, now I didn't do this in a already existing project, I created a new project and learnt how to do this in a separate project before moving it into my actual project. The same goes for moving controls at runtime.

Just break down your project and learn how to do the individual bits.

Your example at first glance has three steps:

  • Download files from the cloud
  • upload files to the FTP Server
  • Clean up files


However you can then Analysis each step to see if you can break it down more:

For example Upload Files could become:

  • Connect
  • Login
  • Upload File
  • Logout
  • Disconnect


Bare in mind that is if you want to upload through the FTP you may just want to do a straight move.

This post has been edited by maceysoftware: 29 March 2016 - 08:48 AM

Was This Post Helpful? 0
  • +
  • -

#5 no2pencil  Icon User is offline

  • Professor Snuggly Pants
  • member icon

Reputation: 6543
  • View blog
  • Posts: 30,648
  • Joined: 10-May 07

Re: How do you learn things which are not googleable?

Posted 29 March 2016 - 09:01 AM

Just like developing in the 90's ....


Was This Post Helpful? 0
  • +
  • -

#6 Hype  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 31
  • Joined: 12-December 15

Re: How do you learn things which are not googleable?

Posted 29 March 2016 - 04:03 PM

Thanks for your replies. So how do you figure out a task that isn't strictly in a book or online? Does this come with practice? I know at the moment my knowledge is so low that I don't need to learn any API's or additional libraries but eventually there will be a stage where I will need to use libraries and API's of which are not taught in books or something.

Or is there literally always some guide out there that you can use? The reason why I ask is because I have someone on my steam list who created a trade bot. It logs in, trades items, authenticates and accepts trades etc. Looks awesome to be honest and I wondered how he learnt how to do this when there isn't a step by step guide. It seems that a lot of programmers can just read the libraries or API's and just know how to use them.
Was This Post Helpful? 0
  • +
  • -

#7 astonecipher  Icon User is offline

  • Too busy for this
  • member icon

Reputation: 2329
  • View blog
  • Posts: 9,356
  • Joined: 03-December 12

Re: How do you learn things which are not googleable?

Posted 29 March 2016 - 04:25 PM

It comes from knowing what you need to do. Programming at its core, is making big problems, into little problems, into littler problems. Each task has sub tasks. That sub task will be broken down into manageable blocks of code that do specific tasks.

Think about the following problem,

Take a users input, validate that it only contains positive numbers, and display the word equivalent back to the user. If the input is not numeric, display an appropriate error message to the user.

That large task has sub tasks that you need to complete, before the overall task can be accomplished. When you work in a language, you know what builtin methods you will likely use, and how you will go about solving the issue. If you are newer, you will struggle with what to do, how to do it, and how to make it work like you want it to.
Was This Post Helpful? 0
  • +
  • -

#8 jon.kiparsky  Icon User is online

  • Screw Trump (before he screws you)
  • member icon


Reputation: 10625
  • View blog
  • Posts: 18,180
  • Joined: 19-March 11

Re: How do you learn things which are not googleable?

Posted 29 March 2016 - 05:03 PM

View PostHype, on 29 March 2016 - 06:03 PM, said:

Thanks for your replies. So how do you figure out a task that isn't strictly in a book or online?


Well, this is what programming is. If there's a drop-in solution for it, the it's not programming, it's IT. If it's in a book or a tutorial, there will be a drop-in solution for it, unless it's so perfectly trivial that nobody is ever going to bother with that.

(although the recent left-pad incident suggests that some communities have a lower threshold of "trivial" than others)
Was This Post Helpful? 0
  • +
  • -

#9 MentalFloss  Icon User is offline

  • .
  • member icon

Reputation: 577
  • View blog
  • Posts: 1,500
  • Joined: 02-September 09

Re: How do you learn things which are not googleable?

Posted 30 March 2016 - 06:42 AM

I suggest you find some tutorials that present the problem, and you go try to solve it yourself entirely before actually reading the tutorial. After you have struggled with the problem enough to have some semblance of a solution, read how the tutorial did it. Your implementation will almost certainly be different, but take the time to see what the tutorial does differently, and understand why. Is it even better? Perhaps your solution ends up clearer, and cleaner than the tutorial.

If you cannot solve it, hesitate to immediately give up and try to see how it it's done. The problem with tutorials is that a good tutorial will give you everything to complete the task, but that leaves nothing for you to explore. What essentially happens is that you turn your brain off and simply input the code in the tutorial -- to the effect of learning nothing except typing in source. Now, if you're particularly excited about the tutorial's scope, you might even be tempted to just copy/paste the code -- and learn absolutely nothing, so resist the urge to ever copy code that you are trying to learn about.

Ultimately, you have to build the skills acquired through struggling to achieve the result. If you never struggle with it, it will not be retained. However, once you do retain the information properly, you will see for yourself that you will be capable of branching off from the tutorial into your own modifications. At this point, you're writing code that you cannot find in a book (maybe) or a tutorial. Congratulations! You've arrived.... for that problem.

Do it for a bunch of problems, and once you think you have a handle on the process, try to come up with your own project. You'll notice that the need for tutorials will have diminished as long as you pick something within your experience level. If it's still too hard, decompose it some more, and see if it lines up with any tutorials you did in the past.

There are no expert books on programming. There are only domain specific books. To get to the ability to read them, you have to start small, and go slow, and really retain the information that you are learning.
Was This Post Helpful? 1
  • +
  • -

#10 Bench  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 944
  • View blog
  • Posts: 2,464
  • Joined: 20-August 07

Re: How do you learn things which are not googleable?

Posted 30 March 2016 - 01:15 PM

Solutions to technical problems are nearly always google'able; for example consider the following:
  • A simple client/server program
  • Writing a web service
  • A database-driven CRUD application
  • Building a GUI desktop app
  • Creating a web application
  • Writing a multi-threaded producer/consumer app
  • De/Serialising JSON or XML data
  • Managing a disk file structure
  • Network messaging ("MQ" frameworks)
  • A mobile phone app
  • A mapping/GIS application
  • Interop to a native DLL within another program


For each of those bullet points you will be able to Google to unearth many hundreds (maybe thousands) of examples, tutorials, videos, etc. Furthermore, by running through tutorials for those sorts of things you'll potentially learn a lot of other things along the way (e.g. about debugging, about your platform/OS, about the development tools you use, about OO design, etc.). In doing so, you will gain a lot of practice at solving technical problems, and build up a decent repertoire of "software recipes" (i.e. common solutions which are found in many types of applications).

It seems that your real question is about breaking down business/domain requirements into individual solvable technical problems; again the way to learn how to attack that is to sit down with those real high-level problems and practice breaking them down into individual technical problems which are google'able.

The difficulty a lot of people seem to have is drawing a distinction between a technical problem and a requirements problem; people who are learning to program often run to forums like D.I.C. asking other users to explain their requirements to them.

One of the best ways you can help yourself is to spend time thinking clearly about your requirements and what those requirements actually mean until you arrive at real technical problems rather than requirements problems. Analysing requirements is more of a "soft" skill rather than a technical one (However it's much easier when you have technical knowledge); it's about putting yourself in an end-user's shoes and asking questions like "What does the UI look like?", "What happens when i click this button?", etc.

Sites like D.I.C. often get a lot of questions such as "How do I ask the user for their info?" - which is obviously not something that anyone on the internet can really help with. A technical problem might look like "How do I print messages to the user in the console, and then read keyboard input from them?" - which is something that Google and forums can help with far more easily.

This post has been edited by Bench: 30 March 2016 - 01:17 PM

Was This Post Helpful? 2
  • +
  • -

#11 andrewsw  Icon User is online

  • lashings of ginger beer
  • member icon

Reputation: 6339
  • View blog
  • Posts: 25,561
  • Joined: 12-December 12

Re: How do you learn things which are not googleable?

Posted 30 March 2016 - 01:50 PM

As we progress, and tasks get more complex and involved, then it becomes more difficult to find a tutorial that meets all, or even most, of the requirements. What we/I do then is to piece together the solution. The pieces are made up of things I already know, code fragments that I have accumulated, one or two tutorials that are "relevant", i.e. cover some part(s) of the task, and half a dozen web pages with technical details and some more code fragments. Everything is google-able to some extent. If we think that it isn't then we just haven't broken it down enough.
Was This Post Helpful? 0
  • +
  • -

#12 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 2386
  • View blog
  • Posts: 5,008
  • Joined: 11-December 07

Re: How do you learn things which are not googleable?

Posted 30 March 2016 - 04:36 PM

An appreciation of what's out there helps too. You may not know the details of all the pieces, but an awareness that the pieces exist will help you break things down into sensible chunks. A degree is good for this. You get a brief introduction to lots of topics. Most you will never use directly but some you will delve further into.
Was This Post Helpful? 0
  • +
  • -

#13 mjmpe  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 7
  • Joined: 08-April 16

Re: How do you learn things which are not googleable?

Posted 09 April 2016 - 05:47 PM

Just use learncpp.com. It has everything you need to know to get started in short, easy to understand chapters. Complete those tutorials, and you should be ready to dive into more complex stuff such as GUI or network socket programming.
Was This Post Helpful? 0
  • +
  • -

#14 SkyAdrenalin  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 28-April 16

Re: How do you learn things which are not googleable?

Posted 28 April 2016 - 07:35 AM

hi i want to ask can somebody help me with algorithms they told me that if i don't know algorithims i can't be a programmer...
Was This Post Helpful? 0
  • +
  • -

#15 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 13392
  • View blog
  • Posts: 53,451
  • Joined: 12-June 08

Re: How do you learn things which are not googleable?

Posted 28 April 2016 - 07:36 AM

What have you researched so far?
Was This Post Helpful? 0
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2