lainchan / λ

Study General

qwerty · 2017-06-20 06:31
General programming and study thread. Topics pertaining to what you are currently working towards (whether it be a programming career or just a soykaf project), how you go about motivating yourself, what you think the best way to learn and improve your coding abilities, and your own experiences with different methods of schooling and/or self-teaching. Picture included is a comfy screenshot I took from before the Garbage Collection. I felt was relevant to this topic.
null · 2017-06-20 12:05
I'm just trying to learn how to program. Currently I'm half through the udacity intro to CompSci. Ironically I already have a BSc in CS. Don't ask. My real problem is less motivation and more the fact that I have no goals. I'd prefer to just sleep eternally.
ForgottenDev · 2017-06-20 21:15
>>1924 i know what you're talking about. I'm developing a python + ncurses application to manage my to-dos and deal with my procrastination. I'm struggling with the "motivating yourself" part (duh), but at least I haven't abandoned the damn thing. I guess I just code when I feel like it so I don't force it and I consciously avoid being too ambitious, because I've left lots of projects thanks to that. I'll get my BSc soon, but I really want to get better at programming because I know I have a long way to go. We all probably just need to keep working on projects, but working with people who are way better than me has helped me a lot.
stack · 2017-06-20 21:19
Does this resonate with anyone else? I seem to always be trapped between points 3 and 4.
Lady 3Jane.. · 2017-06-20 21:58
>>1929 yeah, my experience with programming is that it takes like 5 years for new ideas to really percolate down into your deepest memory, and from then on you're like a wizard who knows everything about it perfectly. At least when you're taught informally.
let · 2017-06-20 22:15
>>1924 I'm in a similar situation to you, I have a BSc in Software Development but I'm going back to relearn everything from the ground up myself to try to properly understand everything.
Sabo Engle · 2017-06-21 02:23
>>1929 Well it takes like a week of fiddling until you really understand how to easily add/change something in a big project. Especially if you have to deal with ugly frameworks like the android lifecycle or something.
Nell · 2017-06-21 18:13
I'm going to the MIT libraries to study and program, it's very quiet and the buildings are beautiful.
Nguoi La · 2017-06-21 20:55
>>1929 I started out with functional programming languages thinking it would make me a 'wizard' programmer. I learned CL, Clojure, Elixir, Ocaml, Haskell. Like you I understood all the books I read, I could see the beauty in this kind of programming, but never felt 'empowered' to want to program this way. So I gave up and started learning web programming. I then discovered that Javascript, Ruby and Python can do 90% of what these functional languages do. I discovered that ''pure functional programming languages" are a dumb meme to trap idiots who are trying to be functional programming wizards. I discovered that trying to use recursion as a drop-in replacement for looping is idiotic, that recursion is just as error prone and stateful as for/while loops and should be avoided at all costs unless you are using an algorithm that is recursive in nature. To take Elixir as an example, everything about Elixir can be found in regular scripting languages, the only thing different is that it forces you to use recursion in places where mapping functions dont apply. If Elixir had a looping construct it would be exactly the same as Coffeescript (I have to use Coffeescript as an example because Javascript lacks good mapping functions and Ruby/Python lacks good high order functions, so Coffeescript is as close as youre going to get to a 'functional language' like Elixir.
Mitnick · 2017-06-22 08:21
>>1956 >I discovered that trying to use recursion as a drop-in replacement for looping is idiotic >drop-in replacement I think there may be a possibility you don't understand those books as well as you think you do. Programming languages are in reality just programs (or suites) themselves that aid in the creation of other programs. At the end of the day no matter what you've written in any language, it must resolve to an explicit unambiguous list of instructions. Given this fact, you can choose to either design your program as list of instructions with varying degrees of abstraction or as a recursive algorithm or anywhere inbetween the two. Designing recursive algorithms presents a different set of challenges than a step by step procedural list of instructions; choosing between and balancing the two is a matter of opinion. Would you like to carve your chair out of cedar or oak? Choose carefully though, one option is idiotic :p
XERXES · 2017-06-30 08:28
>>1921 How do you guys suggest I learn C or C++? I took APCS last year. (java)
Unknown · 2017-06-30 08:30
>>2091 Also, i am interested in learining JS. What's the easiest variant/guide?
Judge Fang · 2017-06-30 08:54
>>2091 Always C first. C++ is not really a superset, but it's a much more complex language that mostly builds upon C, and you probably don't need to know C++ right now. >>2092 Any flavor is probably good. TypeScript seems to be getting a lot of attention these days, and by learning it you also get the benefit of learning a strongly typed language.
Pris · 2017-06-30 12:06
>>2091 >>2093 I'll second the C advice. Learning C first will give you direct exposure to the fundamental concepts upon which C++ is based. Just be careful when you go to learn C++ not to treat it as an extension to C. It's a mistake made all too often. The two are different languages and what might be good C is frequently not good C++. For example, C will get you manually managing resources, doing pointer arithmetic, and implementing your own data structures. This sort of knowledge you learn from these tasks is essential to understanding how C++ works and writing good C++ code, but are themselves not something you should typically be doing much of in C++.
Turing · 2017-07-01 02:37
>>1921 Any good and polite discords for general math/cs discussion?
Torvalds · 2017-07-01 09:58
>>2091 C probably but C++ is an entirely different language at this point, yes you can write C like in C++ but that doesn't mean it is good and you shouldn't do that to be fair.
Lukasiewicz · 2017-07-05 11:40
What is a good amount of time to spend each day on learning ? when is a break needed?
Morpheus · 2017-07-05 17:55
>>2180 different for everyone. Should be more than an hour though. If you don't feel like the information is absorbing, stop. Don't waste time.
Liet Kynes · 2017-07-06 03:35
i'm making a programming project for collage, actually is like the biggest thing i've ever tried to do so i'm a bit slow and afraid. It actually consist of three parts. First one is to scrap product data from store websites with some scripts i made using scrapy and python. i think they work at an acceptable level (at least works) and i'm going to run them with a defined frequency Now i'm trying to learn some stuff from machine learning and natural language proccesing to classify products by their name, something like: "BÖHM Bluetooth Wireless Noise-Canceling On-Ear Headphones With Mic Bohm" -> ['technology','headphones','BOHM'] "Microsoft XBOX ONE 500GB Black Video Game System- Fully Functional CONSOLE ONLY" -> ['Videogames','console','microsoft'] that would be second one and it's a bit hard because only related thing i learnt in collage about this are neural networks, so i'm reading about word2vec and deep learning but don't feel like it can be useful (also in NLTK i'm reading about naive bayes classifier), can anyone suggest me something to search in right direction? last one is to group products by categories and to show nice stats about them, show product data and his variations on a simple website with a lot of pretty graphs.
Jet Black · 2017-07-07 09:34
>>2185 Sounds nice. I also played around with scraping data from the net and feeding it info machine learning algorithms. But often I used images where neural nets are the obvious choice. And I didn't know about scrapy. I used raw lxml but next time I'll try it out. I'm not that knowledgeable myself. But sounds like some kind of unsupervised clustering problem. Or maybe some kind of dimensionality reduction? You've got no target values, is that right? I never did natural language processing myself but my first approach to your problem would be to first normalize the data (remove words not important for context like 'it', 'the', make all letters lowercase…). I read about a nice NLP library for python in some "Machine Learning with Python" book that should to this automatically. And then I would try some clustering algorithms or look into unsupervised learning in NLP. I also read about a technique called "word embeddings" where on places word representations in a space that measured the distance between words/phrases. But I'm not sure if one can reconstruct a human-readable representation from these embeddings… In any case it might be important to run these algorithms not on single words but on tuples of words of different sizes. But maybe you are already aware of all this. Just some thoughts how I would naively tackle these problems.
John Peters, You Know, The Farmer · 2017-08-02 08:35
Gonna be taking a CS course in uni this fall on Computer Architecture (basically the weed-out class for EE/CS), and I'm trying to prepare for the course by trying to learn C as well as possible. Besides the K&R Book, what resources are there to get experience with some of the trickier aspects of low-level C programming (such as pointers)? I'm beginning to read the book attached, but it (unfortunately) doesn't have any exercises, which is usually how I learn from these books.
Crazy Jake · 2017-08-02 19:26
>>2747 I would recommend just reading the K&R book. It has exercises but you should also consider doing something like https://www.reddit.com/r/dailyprogrammer/ for extra practice. C is a very simple language on the surface, and this book alone will teach you what you need to solve real problems and get you through your course. I wouldn't try to rip off the covers and dive into the "trickier" parts of C until later because it will only be useful when you are in the 9-5 trenches maintaining some 30 year old C codebase. Even then you can learn about the weird C soykaf, on the job, as it happens to you. C is just a tool. Make sure you pay attention to the more important things in uni like computation and algorithms. Because that is the stuff you won't be able to implicitly learn on the job and will set you apart from the people you work with.
Trinity · 2017-08-20 16:46
>>2180 Depends on how much free time you have, and how you define "learning" You should study effectively, and practice what you have studied. For me, a good ration had been 1-2 study-practice. If you won't drill it in and use it, you'll lose it.
Demeere · 2017-08-21 13:19
What's the best resource to learn to make device drivers? I find them abnormally interesting so it's given my mind a boner for it. Need good sauces that explain things like a kid because I'm also retarded.
Spike Spiegel · 2017-08-21 17:30
>>2994 Do you care which kernel? This might seem out of left field but Writing BSD Rootkits is a pretty good book for getting into kernel programming. It's short and will get you familiar with writing code for a Unix-like kernel (FreeBSD 6).
queue · 2017-08-25 18:41
I have started coding about half a year ago. >watched most of the cs50 lessons >did 2edx courses what is next? I feel like when i go on /r/dailyprogrammer the easy questions are manageable but the intermediate questions are impossible.Should I go through the github CS curriculum next or read a book? I feel like I need a lot of time for even a simple program, which scares me since next year ill already be in college(europe).
The Plague · 2017-08-28 16:58
>>2994 I asked this in the last ebook thread, look there. some dude hooked me up with hella books for linux and freebsd drivers, and if you're retarded then start with freebsd. Unfortunaly as far as i for was stopping the moment i got to hardware chattpers in LDD3, as i only read the other chapters to help with kernel programming for my research. When i return to actually learn drivers i will definitely be starting with Kong's freebsd driver book.
John Peters, You Know, the Farmer · 2017-08-28 23:30
>>3067 I recommend a couple of things: 1) Start doing exercises from websites such as ProjectEuler or Rosalind. Programming is like playing an instrument; you won't get better if you don't practice. The exercises in these websites gradually escalate in difficulty, and in PE, once you finish a problem, you can see how other people solved it, exposing you to other styles of programming 2) Read books Goes without saying, but people that write programming books generally have an abundance of experience. Start off with simple ones (introductory books such as K&R that introduce you to some low-level concepts in C), then move your way into more challenging books (currently going to try to read a Springer "Scientific Computing" tome that's probably beyond my ability, but it'll be fun nonetheless) And this also goes without saying, but try to work on projects that interest you. The higher you aim, the more you'll have to learn (which is a good thing if you want to learn). As for college (I'm assuming university and not "college" in French), the introductory courses are usually aimed at people who have never programmed before, so the more experience you have beforehand, the less things they'll be able to throw at you that'll trip you up. Good luck!
Delilah · 2017-08-29 12:02
>>3109 Ty anon
Backus · 2017-08-29 23:37
I'm building a backup system in D and a website for serving console themes (also in D). I've been having a hard time pushing myself because my code looks like soykaf.
over · 2017-08-30 18:57
I'm going through SICP right now. Paused in the end of first chapter actually to go through Little Schemer. Scheme is my first experience with functional programming (apart from JS) and it totally blew my mind. If anyone also learning this stuff right now I will be super excited to get in touch. There is tone of exercises in SICP and some are pretty fun to go through.
John Peters, You Know, the Farmer · 2017-08-30 21:54
>>3133 No way! I'm also going through the Little Schemer (well, "The Little Lisper", to be more exact, but I'm not sure what the differences between the versions are). I've also made my way to the beginning of Ch 3, but I'm thinking of finishing the book within the next couple of weeks. I'd love to get in touch as well!
Yet Another Lainon · 2017-09-06 03:50
I tried teaching myself Python for the past few months due to an initial interest in web scraping and control systems programming (Extron) but have recently lost all interest. I get that languages are just tools and all but I never felt comfortable programming in Python in the way I am with C. Im kicking myself for quitting yet another project but lately I have not even been motivated to program in my free time. Going back to C and working towards my interest in Linux kernel programming seems to be the direction Im leaning in because I dont want to dread programming like a chore anymore. Despite this, I still feel like an amateur, I know the basics and am competent enough to hold a job even if it is not a traditional, programming job, but I just feel like Im stagnating. Some motivation and/or direction would be appreciated.
Torvalds · 2017-09-06 04:50
>>3119 >my code looks like soykaf Have you read Uncle Bob's Clean Code? Developping clean code habits is a very important skill. Do it for yourself, do it for all the people you'll ever end up collaborating with.
Tomohisa "Tom" Kanezaki · 2017-09-06 05:52
>>3133 >>3136 there was a group of some lains doing sicp over the summer, i think i'm close to end of chap 1, i'd pick it up again maybe. i've had some functional exp previously so it was kinda eh. >>3255 could be because you've missed the sweet spot for difficulty : enjoyment ratio. too challenging and you feel like you'll never be able to do it, too easy and it feels like a chore :/ you've got to gauge your skill level for yourself, pick something you want to make and work on that or on something you'd need to learn first if it's still too hard. maybe look into using python with ctypes.
Milner · 2017-09-07 18:01
1 year of programming is behind me in python/c++/c, I went through videos,courses etc. >I have never built a large program >any good ideas on this? >my ideas are lacking, i have tried stuff like web scrapping but i rather want something that can benefit me. >projects that have a well rounded challenges but aren't completely impossible for a beginner >ty I feel very stupid asking this
John Peters, You Know, the Farmer · 2017-09-09 15:03
>>3303 There's been a couple of community-driven efforts to get a bunch of challenges with a wide range in difficulties... Here's a couple from 4chan's technolo/g/y board
Ender · 2017-09-09 15:27
>>3350 Ty
Ein · 2017-09-10 01:24
>>3257 This is exactly what I need. Thanks, lainon!
nil · 2017-09-11 09:42
>>1929 I don't think I've ever reached the "able to contribute to projects" part. Maintaining projects just isn't interesting to me. I would always start with intensity and finish all the interesting parts that made me start the project in the first place and then just lose interest. To me it's all about that horrifying midpoint. I don't really like making things I don't care about. I like making things to make things. Infrastructure. Operating systems. Programming languages. Compilers. Virtual machines. That kind of thing. In the pursuit of this stuff I ended up learning several programming languages, studying their reference implementations and alternatives, implementing my own programming language, studying the Linux kernel source code and thinking up possible improvements, programming against Linux directly with the x86_64 system call interface, rewritten many libraries and utilities to learn how they did it, read a lot of standards and RFCs such as the HTTP ones; trying to figure out the ABNF grammars they contained led me to computational linguistics and parsers, from there I started learning and implementing algorithms and learning formal CS theory. I've researched retrocomputing and retro video games, how they worked, how they used the hardware, how to hack them... There's probably a lot more stuff that escapes memory. I just finished reading a random ass CS paper about register saving techniques used to implement function calls on dead machines like VAX; I don't even remember why I started reading it. I don't even know what I'm going to do next, I just stumble onto something and start reading about it. Some months ago I started playing some soykafty mobile game and realized the entire game was just clicking a set of buttons to reset a set of running timers which increase other numbers when they hit zero. So I started learning reverse engineering and managed to figure out its network protocol and write a really simple custom client that could login and do simple things for me automatically. Somehow playing a game made me write a bot and it was more fun than the actual game. After I wrote it I stopped developing it because there was nothing else to learn, just the drudge of figuring out the rest of the protocol and implementing it in the bot. This midpoint is way better for me than the actual "you have to deliver a tested, 100% working product" part of this industry. None of what I learned has ever made me any money or allowed me to write anything other than arcane stackoverflow answers to obscure questions... But it was one hell of a fun journey.
Knuth · 2017-09-12 14:22
I am doing my BSc in computer science but I feel like what university teaches us is really not enough to even get a basic understanding of most of the topics they teach, so I try my best to self-study most of the topics alongside my university classes. I am currently reading Computer Organization and Design The Hardware/Software Interface 5th Edition (ARM Edition). I am almost done with it; only 200 pages are left. Next up on my list of self-studying material is reading Computer Networking; A Top-Down Approach Head First SQL and watching a theoretical computer science university course on youtube. I am also planning to do the Linux From Scratch project, but I don't know when I'll do that.
Tyrell Wellick · 2017-09-13 13:42
>>3438 If you are interested in Computer Architecture, then I can recommend you this online course: https://www.youtube.com/playlist?list=PLPKXpQ5XNGU_9TEXZ7W9uW_52Mre9tYWK It was originally on Coursera, dunno if they still do it there or not.
Pulse · 2017-09-26 15:33
Im currently getting more and more into python with being introduced to data science about a month ago. Any advice on rapid improvement in this field? Good books? My personal plan would be to start with data science then get into machine learning/deep learing and then finally into AI/robotics >Sorry if this sounds naive, I am rather new >currently freshman in college with moderate CS knowledge
Nell · 2017-09-27 00:35
+-^(),'{}:->#
Molly Millions · 2017-09-27 07:07
>>3404 > None of what I learned has ever made me any money How come people like you with such vast knowledge refuse to make money with it, or rather, are incapable of doing so; If you have such intense interest why would you make money in some other grind-ier way?
Bobby Newmark · 2017-09-27 08:16
>>3781 In the end it's because I never gave it a chance. I started programming at 13 but then I read some books on neural networks, decided I liked neurons and brains then ended up in medical school. I told myself I wouldn't be happy working for low salaries to maintain old systems I didn't invent, understand or even particularly care about; that's what the job market looked like to me back then. Now I gotta live with the choice I've made. I still keep in touch with my programmer friends. A friend of a friend got recruited by Microsoft; something I had written off as pretty much impossible for 3rd world people like us. They flew him to the USA and paid for everything. It's been a while but I can only assume he ended up in the C# team or something. That stings. Working on the CLR? That sounds like an interesting and fulfilling job.
string · 2017-09-27 21:23
I've got a friend who has been in the industry for a while. He's helping me learn 3D graphics through OpenGL in his spare time, but we've only just started. I've also worked on some tiny projects like a simple synthesizer, which has not gotten very far because honestly I forgot about it until now, a VBAN packet sender, and I've messed around with SDL. Personally, I've been doing jack soykaf about the motivation thing recently. I'm waiting for my friend to get more spare time so we can work together and haven't really done anything in a while. I've been focusing on other stuff, so it's all good. My personal advice on motivation and learning is: just pick up SICP and just do it. I've tried other courses and books and they just suck. I had been exposed to programming for a very long time, but I never actually made anything until I did SICP and read K&R. Getting all of the bullsoykaf out of the way was like scales falling from my eyes. It feels so good to just sit down and make something from scratch, without having to worry about best practices or frameworks or methodologies or anything. Everything was always trying to teach me the cookie-cutter approach, now the sky is the fuarrrking limit. I can make fuarrrking anything if I put my mind to it. It's a good feeling.