I used to be good with tech, I used to know the ins and outs and really sink into things. Then life happened, growing up happened and having a full time job meaning I couldn't dick around on the internet all day happened.
I'm feeling more and more like I'm behind on even the most basic tech these days and I'm still early 20s.
I find myself, even after much reading, still unable to understand what a raspberry pi even is. It took me nearly an hour to work out what type of cable I needed to get my macbook to connect to my TV and I got happy when I worked out how to change the screensaver on my mac.
Is there somewhere I can play catch up? A book perhaps? I'd like to learn to code a bit as a hobby, as I used to be computer lad when younger, but have since forgotten everything and find it might be enjoyable. Would I buy a Raspberry PI? I've seen the thread below, I still don't get it. What even are the languages? How does the computer understand the languages?
Fucking hell. I appreciate this is all over the place, but somebody out there must be selling a book to bring people back into the technology bubble.
I was properly 1337 as a teen (25 now), but then smartphones happened and I didn't get one. I'm not about to start getting threatened over my lack of knowledge on apps, but when I had a reputation for being good with computers and bad at the sexy timings (not the actual sexy time itself, which I've never had any complaints about), for that to reverse roles was an unusual feeling, as well as being schooled on current tech by a load of shallow student girls calling me a grandpooh for not knowing (or caring) about the difference between a Samsung Galaxy and an iPhone. Adapt or die, my friends. Or feign a lack of technological know how and use it to sidestep the heinous accusations aimed at you, like Hillary Clinton. OOoOOooh political burn right in the crinklebiff of old Bill Clinton's sidebitch.
>Is there somewhere I can play catch up? A book perhaps?
Depends what you want to learn really mate. A good start to coding would be learning C, the standard text is K&R, conveniently available online here: https://hassanolity.files.wordpress.com/2013/11/the_c_programming_language_2.pdf . It's a little dry but not super long, reflecting the fact that C itself is not super big, though still very powerful. C is a relatively low-level language which means a lot of the things you need to learn are relatively close to the actual way a computer operates, such as addressing particular spaces in memory.
If you would like to learn programming more as something to tinker around with quickly without necessarily bothering with the under the hood gubbins then Python is one of the most popular higher-level languages. Basically this means that a lot of things like memory addressing are hidden away and you can write one-line programs that would take tens or possibly hundreds of lines in C. Python also introduces thinking about things in an object-oriented way, in a much more easily understood way than Java or C++ imo. I personally found http://learnpythonthehardway.org/ to be a fairly good starting point, though Python itself is a much larger language than C and there are quite a few advanced things to try like magic methods once you've got the basics down.
I wouldn't worry too much about Raspberry Pi's unless you are super interested in playing about with the hardware side of things, or you want to make some kind of embedded device. A Pi is literally just a tiny computer, in the same way that your smartphone is, except it costs way less and requires you to plug it into an external monitor. If you've already got a Macbook you have everything you need to start programming.
You're describing two completely separate strands of knowledge.
Knowing how to plug X into Y is mostly trivia. That information goes out of date very quickly as technology changes, so nobody ever really masters it. I wouldn't worry about it too much - I have a doctorate in computing, but I struggle to get my printer working like everyone else. If you want to keep up with that sort of thing, I'd suggest reading a blog like Anandtech or Tom's Hardware. Personally I don't bother, I just Google things or ask on Stack Exchange when I need to.
The answers to questions like "How does the computer understand the languages?" are fundamental and unchanging, like mathematics. To begin to understand that stuff, you really need to take an introductory course in computer science.
If you want to understand how software works, I'd suggest one of the following courses. They require no prior knowledge and are equivalent to the first month or so of a degree in computing. Starting from scratch, you'll work up to building real software that does useful things.
If you want to get a sense of how computers work in a concrete sense, I'd suggest Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. The material covered in this book isn't as practically useful as the courses mentioned above, but it does a very good job of demystifying computers.
If you really want to dive deep, I can recommend the course "From NAND to Tetris". This course covers the absolute nuts and bolts of computing, from transistors up to software. This course requires no prior knowledge, but it is very challenging.
>>25263 Why? OP asked for recommendations of a book to learn to code, K&R is an introductory text to one of the most common languages in existence. I followed it fine without much formal CS background beyond learning a bit of Visual Basic at A-level. I think a lot of compscis over-estimate the difficulty of what they do to be honest.
But yeah, if you literally have no idea how to follow the instructions at the beginning of K&R to compile a "hello, world" program and you're still keen on coding I'd take a look at the Python guide linked (actually if you use http://learnpythonthehardway.org/book/ you can skip past the fluff advertising a paid version). It goes into a lot more detail at the beginning on how to run the code on Windows, Linux or OS X and the language itself allows you to do more faster with the built-in functions. The downside is that such high-level languages obfuscates a lot of what the computer is actually doing 'under the hood', which may not be great if you'd like to learn about that.
I know how you feel lad. I'm the same age, and I don't just feel like I'm "out of touch" with modern technology. I feel like technology actually abandoned me and people like me at some point along the line. Technology is the ex girlfriend who broke my heart and fucked of with someone more attractive as soon as she lost her puppy fat.
I even worked in tech support for a brief period, but it was right around the time "cloud" computing, tablets, chromebooks and other such nonsense was getting big a few years ago. I saw beyond the veil into the tech-scape (that sounds like the sort of shit you'd write if you were a fucking poncey tech journo nowadays, not like they used to be) we were sliding into, and I knew I wanted out.
My solution has been stubbornness.
I've got a smartphone but I resolutely use it for emulators and such instead of swipey-tappy cut the fruit or whatever people play now. I bought what is apparently considered a flagship model, but in reality I didn't have much choice- Sony are the only company who still does "fully specced" (i.e not artificially gimped for profit margin) models in a "compact" (i.e still twice as big as we used to think a phone should be) size any more.
I bought the cheapest laptop I could see on the shelf in PC World because by this point I expect you can surf the internet on literal toasters; and I wasn't far wrong. I could've spent three times what I did on this and I can't see what benefit it would have given me whatsoever. Before this one, I was literally using a decade old XP machine,and doing just fine until the hard drive packed in.
I keep my desktop on Windows 7 and I've turned updating off for about the last three years, with NO intention to upgrade, because it only ever causes fucking problems- And we've arrived at a stage where you don't even have the control over your own PC to tell it not to fucking restart and take an hour "configuring updates".
Nerds like us, we're not the target audience any more. Technology, like everything else it seems, is no longer something you own and tinker with and customise. It's just another fucking renewable service.
>ANON, ARE YOU GOOD WITH COMPUTERS?!
I suppose so, why? Having trouble with your web browser? Need some registry cleaning?
>MY TUNESTORE WON'T SYNC THE CLOUDBOX TO MY FARM-BIRDS, SHOULD I UPDATE TO CADBURY FRUIT & NUT?
>>25282 >I keep my desktop on Windows 7 and I've turned updating off for about the last three years, with NO intention to upgrade, because it only ever causes fucking problems
Yeah, and I can't see your approach causing any problems at all.
The simplest reason is because it's pointless to teach C, of any kind, to someone with no CS background. If you're not fluent in ASM then you're not going to appreciate being closer to the metal in any case, and good luck debugging all those crashes and even nastier bugs when you don't know what a segmentation fault is or why your pointer access is invalid. Following along with a bunch of ancient examples designed to merely introduce syntax and basic library use is one thing, but actually appreciating what you're doing and being able to use that to actually solve problems is quite another. If at the end of "learning" a programming language you cannot use it to solve arbitrary problems in an efficient way then you have effectively learned nothing.
Beyond that, K&R is ancient. It is literally pre-standard C from the days when UNIX (in all caps) was actually a thing. Since K&R was written we've had C89, C99, and C11. Standard modern compilers generally aren't even compatible with K&R C any more (https://gcc.gnu.org/onlinedocs/gcc/Incompatibilities.html). You wouldn't know any of this though since you probably got the recommendation from 4chan's /g/ in between shit posting about steam games.
Giving someone with no CS background a copy of K&R is to teach, by dumb rote, an obsolete version of a nearly obsolete language to someone with no need to learn it and who will not appreciate what it is that they're supposed to be learning anyway.
Please don't argue lads. This has been an absolutely top thread. I'm gonna start with some python and I'm feeling a bit better about knowing others out there feel like me.
Thanks to the top lads who give such helpful answers.
If they don't use Internet Explorer and they don't go around opening random office documents in MS Office, then the average user connected through a home wifi router simply isn't going to be affected by the vast majority of vulns patched by Microsoft Update. The vulns are there, present, but they can't be reached. There is no attack vector.
I'm sure there must be some exceptions to this but I really can't think of any right now, there may be some way to get Chrome or Adobe reader to use Windows core libs to render WMF images for example, although I'd be quite surprised.
You'll notice I linked the 2nd edition which was updated to cover the original ANSI standard for C.
I'm not going to argue about the merits of learning the different standards as it completely depends on what you want to do with it; though you're more likely to run into problems trying to compile code with newer C99 or C11 features on a compiler that defaults to C89 than vice-versa.
Out of interest though, what would you recommend as an up-to-date text for learning C?
> Out of interest though, what would you recommend as an up-to-date text for learning C?
It's a good question; C is not (really) an up to date language so it's somewhat difficult to answer. I also haven't read a book on C in nearly 20 years, so there's also that.
If they wanted a book aimed at programmers of other languages (much like K&R was) then I'd be tempted to just throw a copy of the C++ primer (I've only read the 5th ed, although I assume the 6th will be just as good) at them and let them learn something properly useful. Once they've got the hang of things they can pivot fairly effortlessly into pure C if they have some bizarre requirement to do embedded programming or something.
If someone had never programmed before I wouldn't recommend that they learn C in the first place, but if they really wanted to the only text I can recommend from personal experience is the old two volume "C for dummies" series by Dan Gookin. For someone who's programmed before it's horribly slow paced but it covers everything you need in C in an easy to understand manner, using modern coding styles etc. I imagine there are all kind of "C for complete and utter n00bs" books available these days but I honestly can't recommend them as I've never read them.