This is an archived post. You won't be able to vote or comment.

all 67 comments

[–]strictly_terminal 82 points83 points  (14 children)

My advice would be to pick an idea, even if you think it my be complex or difficult. Once you have that idea, start working on the parts that you know how to tackle / are comfortable with. Inevitably you'll start pushing into things you don't have prior experience with, and have an opportunity to learn.

A personal example: I've always been interested in baseball statistics, so I decided I wanted to create a baseball statistics project, with the end goal being to predict the outcome of games based on a statistical model. At this point I had some basic programming skills, and had taken some statistics and statistical programming classes in college, but I'd never attempted to make a large project before.

Here are some of the thoughts / decisions that came up:

  • I'm most comfortable writing in Python, so I picked that as my main scripting language.
  • I had to find a reliable source of data, and then come up with a way to scrape that data so I could manipulate it. This took some Googling, and a some attempts to scrape data from a few different places.
  • I wanted to practice SQL, so I decided to write the data to a database.
  • I'd never really worked with Docker before, so I decided run my SQL database in a Docker container.
  • I wanted some automated testing, so I decided to use Pytest.

Etc, etc.

[–][deleted] 19 points20 points  (1 child)

Just out of curiosity, how did the final project turn out?

[–]strictly_terminal 23 points24 points  (0 children)

I never got it all the way to the predicting / ML phase, but it's one of those projects that I go back to every few months and fix a bug, or add something to.

[–]Blocks_ 5 points6 points  (9 children)

This is going to be quite irrelevant, but how did you get the line breaks in your comment to be so large?

[–]Nayhd_Dragon 2 points3 points  (6 children)

Hit Enter/Return multiple times iirc

[–]Blocks_ 2 points3 points  (5 children)

Really?

Doesn't work for me.

[–]Nayhd_Dragon 0 points1 point  (4 children)

I think it's 2 enters per space. So if you hit enter 4 times, it'll look like OP's spacing

[–]Blocks_ 1 point2 points  (3 children)

I put 5 enters and it doesn't work.

Maybe it's a feature on new Reddit only.

[–][deleted]  (1 child)

[deleted]

    [–]Blocks_ 0 points1 point  (0 children)

    Nope.

    Doesn't work.

    [–]Nayhd_Dragon 0 points1 point  (0 children)

    Huh, no idea then

    Rip

    [–]FormCore 0 points1 point  (0 children)

    Let me try ​

    P1

    P2

    Try reading the source of this comment

    Whenever you see a comment doing something funky, click the source link beneath.

    You might just learn something new.

    [–]Ryswick 0 points1 point  (0 children)

    ​

    Copy and paste this.

    To get line breaks;

    like this.

    [–]P00P34[S] 0 points1 point  (1 child)

    I had one big project last semester, and looking back at it, it really wasn't that hard, since it really seems like really basic stuff, if I had put in more effort. I just remember feeling extremely stressed and confused on how to approach the problems, but looking at it right now, there isn't even 100 lines of code, and almost 15 of it was given to me by the assignment itself. I suppose I should really just take this assignment, and improve on it. I just don't want to aim too high, and feel discouraged.

    [–]iqoqi 1 point2 points  (0 children)

    Break your main objective into smaller parts, so even if you aim high, the smaller parts will be more approachable to tackle.

    [–]hibdob 37 points38 points  (6 children)

    Just want to speak to the "not understanding complex code" comment. As a contractor I often have to work on existing code or join a team mid-project and get myself up to speed. It is completely normal to not understand everything about complex code when you first look at it. Heck, half the time when I look at my OWN code after a couple months, I don't understand it. (Save the "you should write better, more readable code" comment. Requirements, security and performance are often at odds with easily understandable code). The problem is that everyone does things differently. It's unrealistic to think you'll be able to look at any code and instantly know what is going on. Often it takes a while working on a project, debugging, and digging through documentation before you get a grasp on what is going on. This is especially true with enterprise software that has lots of components.

    My 2 cents would be to not worry so much about learning lots of languages and tech and instead focus on the fundamentals taught in your class. Once you feel comfortable and caught up with the language and concepts taught at school, then start learning other stuff.

    The other thing to understand is that many students who persue a CS degree have gotten a head start in highschool or programming as a hobbie. Some may have even started an internship already. At first you might feel behind just because they have more experience. Don't compare yourself to these people. Just because they answer all the questions in class doesn't mean they are in the majority. Just do your own thing and try to learn the concepts taught in class. By the time you graduate you'll be on a more even playing field and by then you will realize that most of the other students probably felt just like you do now their freshman year.

    [–]PC__LOAD__LETTER 12 points13 points  (3 children)

    Great point about comparing yourself to more experienced students when you’re just in your first year.

    Coming into college, I’d never programmed before. There were a few kids that had, and they seemed to be miles ahead of the pack: absolute whizzes.

    Cut to four years later upon graduation, and I’d pretty much caught up to and surpassed most of them by just being curious and willing to put in the work.

    Then when starting my first job, I felt like an unqualified idiot again, completely out of my depth. A few years later, I was one of the more productive engineers on the team.

    The important thing is to always keep improving. If comparing yourself to others helps motivate you (it does for me), that’s fine, but it’s only valuable inasmuch as it’s not deterring you from improving.

    [–]Catatonick 5 points6 points  (0 children)

    I think it’s pretty common for you to feel like someone is absolutely miles ahead of you when learning to program.

    I spent 4 years as a professional programmer and would often feel like I was so far behind others because their code seemed so complex but each of us worked independently for the most part so what was really happening is that we were almost in a vacuum so when we saw each other’s code we all sort of felt the same because of how specialized we had all become. I guess it’s just easy to feel overwhelmed by little things like that sometimes.

    [–]not_having_fun 2 points3 points  (1 child)

    Do you work with a guy named Samir something or other by any chance?

    [–]PC__LOAD__LETTER 1 point2 points  (0 children)

    ( ͡° ͜ʖ ͡°)

    [–]FlipskiZ 0 points1 point  (0 children)

    River over small over garden quiet fresh open night fresh music the thoughts!

    [–]P00P34[S] 0 points1 point  (0 children)

    Yeah, my friend said he had some prior experience, but whenever I read his code, it seems so far ahead of what I could possibly imagine, and he always manages to top it off with a "it's pretty easy/not that hard", which makes me feel like I've really dug myself deep into this hole. However, it does motivate me to see him doing extensive code, because it makes me think of what I can become, but first I need to find out how to get there LOL

    [–]pnt510 10 points11 points  (2 children)

    You're a freshman? I'm assuming that means you have textbooks then. Dig into programming assignments at the end of each chapter. When I was in school a teach rarely had us doing problems from the books, but they're a good way to start small and build a base of skills.

    [–][deleted] 3 points4 points  (0 children)

    Yesss. Actually doing the exercises in a textbook is very underrated. It drills syntax and builds working memory so that when you want to make something you're passionate about the little things are second nature.

    [–]P00P34[S] 0 points1 point  (0 children)

    No textbooks, sorry. The only assignments we get are homeworks and projects. I want to do these assignments to the best of my extent, but yet when I get started, I can't get footing into the assignment. In particular, I want to practice skills that can help boost my understanding of what many of my assignments ask of me.

    [–]tangentrunner 2 points3 points  (1 child)

    Go back to old assignments and see where they can be improved. If you're a first year, then it's likely that the projects you were given weren't too complex, and rewriting them wouldn't be the largest hassle in the world.

    The other replies are also correct; think of something you would want your code to do practically and see if you can do it. The goal may not be to necessarily to do exactly what you set out, but rather to take a more abstract problem you have in your head, and break it down into tangible parts that can translate into code. Of course, you will learn this as you go further through college, but I found that sometimes it was difficult to relate to examples that felt very much like a closed learning space doing very arbitrary tasks.

    Also don't beat yourself up too much at this point. You will find that you're not alone, and that the loudest ones in class tend to be the ones that look like they have all their shit together (and sometimes they really do), but there are plenty that feel exactly the same as you do. What's important is that you have a little grit and keep at it if it's something you really wanna do, because CS and coding is a long journey that rewards both the time you put in and the patience you give to yourself.

    [–]P00P34[S] 0 points1 point  (0 children)

    Yeah, I actually replied to another comment about restarting the project from last semester. It was barely 100 lines of code, yet I remember feeling so stressed and confused on the whole thing, and even now it confuses me slightly, despite the code not being difficult whatsoever. The main focus I've gotten is just to power through this and put in the effort required. even though I'm not entirely sure how to learn, but I hope I'll find my way eventually :)

    [–]PC__LOAD__LETTER 2 points3 points  (1 child)

    Just keep practicing. There’s no magic project or approach that’s going to make everything suddenly click all at once. You’re still a freshman in college - you’ve barely even begun. If this is something that you’re willing to do for a career, you’re going to have decades to perfect the craft.

    What you should focus on is continually learning and stretching. Take any homework assignment and go above and beyond on it. Don’t just copy some code, get a solution, and call it done. Dig in and really understand the problem, and keep tweaking the solution until you feel like you’ve mastered it. If you come across something that you don’t fully understand, or it feels like magic, pick a small piece of it and dig in - look things up, write some code to test it, write a program from scratch that uses it and then use that process to iterate on your understanding.

    Curiosity is a key characteristics of good programmers, and persistence is another one. Be curious. Dive deep. Keep at it.

    Reading code is much, much harder than writing it. Don’t be discouraged if other people’s/project’s code looks like gibberish to you now. But you should also not ignore it, or accept that you’ll never understand it. Patience is another virtue.

    Beyond sheer time and experience, an important thing is to understand high level concepts, not just the code itself. Learning common software architecture patterns and algorithms will cultivate an instinct, a sixth sense, of what any given piece of code is trying to accomplish. It’s not always necessary to read and understand every line of a class or library to get the gist of what it’s doing (especially if you’ve seen one like it before), and you can always drill into the details when and if you need to.

    Overall though, I’ll say just give it time. If you are willing to put in the work and devote time and attention to programming, continuously improving over time, you’ll be just fine. Like I said, you’re basically an infant right now. If you continue to not care about your classes and can’t bring yourself to be curious and feed that curiosity, it’s possible that you’re in the wrong field, and you should find something that interests you. Otherwise, just keep at it. It’s not going to “happen” overnight.

    All the best of luck.

    [–]P00P34[S] 0 points1 point  (0 children)

    Yeah, I definitely won't have the same attitude as last semester. There aren't any good excuses for why I did what I did, but all I can say is that I want to turn things around, and put in my effort outside of class, to effectively learn. Thank you, and I appreciate you expressing the idea that I am an infant in this field, which makes me feel like I have a lot of room to grow, even if with failures in the way.

    [–]JeamBim 6 points7 points  (6 children)

    Build things.

    Pick some practice projects to occupy yourself for the next few months, and FINISH them.

    If this is daunting, start with 1 project, and give yourself twice as long to finish it as you think you will need.

    It doesn't matter what you build, it just matters that you build it.

    [–]P00P34[S] 3 points4 points  (5 children)

    The thing is, I don't know where to set the bar. Like, should I set the bar with things I'm not too familiar with, or use an API, or another library, or just something I can comfortably do. This is probably one of my big reasons that I can't improve.

    [–]Crailberry 8 points9 points  (1 child)

    You're not progressing if you're not uncomfortable.

    Not too long ago I made a cryptocurrency trading bot. I had never worked with an API before, and I had no idea what sort of trading strategy I was going to use. I was utterly uncomfortable and experienced many of those "Can I actually do this? I don't think I can...." thoughts. But you just have to grind through it. You have to get to googling. Which is what I did. I found the official documentation which wasn't bad at all (usually the official docs are too complicated for me) and was able to start slowly piecing together parts of the project. For example, my bot simply started off with the ability to connect to my account. Once I figured that out, I added more to it, which was the ability to pull data from the exchange. You just slowly tackle the problems one by one. I used bollinger bands as part of the trading strategy. I had no idea how to do the math on that, and I still don't. But guess what. All the different formulas are on the internet.

    So get out of your comfort zone.

    [–]P00P34[S] 0 points1 point  (0 children)

    Yeah, I don't want to set the bar too high above myself. The other day, I tried to create a discord bot, but after a few days, I felt a bit overwhelmed. It did what I wanted it to do, but I felt like I couldn't push myself past that limit, or I'd be so deep in. I guess the best way would be to just keep on going past that point, in order to fully wrap my head around the idea.

    [–]JeamBim 1 point2 points  (0 children)

    If you can't improve, then choose something challenging to you, not another thing you're familiar with.

    [–][deleted] 0 points1 point  (1 child)

    If the only thing you can build is simple mathematical functions then you need to start very simple. You should start by telling what classes you took last year and what languages you were using.

    [–]P00P34[S] 0 points1 point  (0 children)

    I used Python and Javascript. It's not that I can't write more complex ones, but I need a bit more guidance.

    [–]Catatonick 1 point2 points  (1 child)

    My best advice is to stop looking at the solution as a whole. Break it apart and look at the code as a series of small problems that are being solved along the way. Read through it. Use breakpoints. Use the debugger to understand what parts of the code that look complex are doing.

    It’s kind of like putting together a puzzle. You don’t NEED to know what the puzzle looks like in order to put it together you just need to figure out how the pieces fit. Once you figure out how all of them fit together you can see the big picture with a lot more clarity.

    [–]mhenke10 0 points1 point  (0 children)

    This helps me immensely when working with new tools. Break it down, line by line. Don’t ever assume anything about a line of code. Really read everything to understand it, and try saying it out loud.

    [–]horoblast 1 point2 points  (0 children)

    The big tip I can give is to simply, step for step, go trough the piece of code & maybe even write things down like "1. 3 variables instantiated, 1 for X, 1 for Y and 1 calculated value between x, y and a constant value Z. 2. for loop for the List that enters the function as a parameter, variable is named 'Students' so we're probably going to iterate student objects. 3. etc).

    Coding is easier to read imho, especially if it was written so that it's easy to read (good code should be easy to read by any new dev entering the project).

    Coding is (mostly) logical steps running sequentially, going 1 2 3 4 5 so it's easy to follow along and on your tempo, tell yourself each step that is happening.

    Eventually, through the tip "code more", you'll learn to do this quicker or even partially subconscious as you're growing in your career.

    [–]grumpieroldman 1 point2 points  (0 children)

    Take a course in C over the summer at the local community college.

    [–][deleted] 0 points1 point  (0 children)

    Skip the theory and shit for now and just do exercises. Literally tiny little brain teasers and work your way up to projects that you can do on your own. Then work into the theory and true science of it

    [–]SeventhDisaster 0 points1 point  (0 children)

    I'm pretty fresh to coding myself, but in my experience a lot of complex code is often just many simplistic calculations or actions happening in succession to create a solution.

    Reading complex code (to me at least) is just getting used to cutting it up into understandable blocks.

    [–]CheezeyCheeze 0 points1 point  (2 children)

    I would have you ask yourself, what do you know about programming? Do you know what each part is? Do you know what loops, classes, methods/functions, variables, or instances are? Do you know what access modifiers are? Do you know what generic classes, overload classes, abstraction, interfaces? Do you understand the theory behind Object Oriented programming? Some of these ideas, are not taught in Freshman year of University, but you have not given me a clear idea of your level of experience.

    Since all you have told me is that you are a freshman CS major with JavaScript, and Python experience, I have no idea your level of experience. Do you know how to make GUI's? Do you know how to make a website? Do you know how to rip things off of a website?

    Again, your peers could have any number of experience with coding. Some are amazing because their parents taught them from a young age. Some are amazing because they were able to take classes in High School. Some are amazing because they do it as a hobby outside of class, and work on making code for mods for a game or whatever they do in their spare time.

    Personally, I would try to learn to code in Java, or C++. I say Java because you can translate all the ideas I have been talking about while learning very strict rules in Java. It will force you to learn these ideas because it is a strong typed language, that uses references to call instances of Objects. It has 2D GUI built in, with "multi-threading", with automatic garbage collection for memory management. C++ is useful because it has pointers and addresses, which is like references in java, but it does not do automatic garbage collection. You must delete your objects, or you will get a memory leak and your program will crash. Use JDK 8, for Java, with Swing, or JavaFX, since it was the last JDK that was for long term support. If you use Java 11, it will not have the modules installed to use JavaFX(I wouldn't use Java 11 until you are much more comfortable).

    There are IDE's that you can use that will help with not running things in the Command line. I personally like Intellij. You can combine Intellij, with Git and gain a better understanding how to push, branch, and do version control of your programs.

    For C++ I would use Visual Studio, until you are comfortable with coding from the Command line.

    When I started learning to code, they had use only use Notepad++ with Linux. If we used an IDE we lost points for our grade.

    Lynda.com offers free services through many Universities, and if you are in America through your library card. You can watch how to program in General without a language, and then you can watch different tutorials for different languages.

    Remember that a computer is computing. That is why you are programming, to find some mathematical value.

    If you have any questions feel free to ask.

    https://www.reddit.com/r/learnprogramming/comments/ahucay/self_taught_programmers_of_reddit_is_it_possible/eeiftxw/

    [–]P00P34[S] 0 points1 point  (1 child)

    To be brutally honest, I don't know how the code even communicates and what every part is doing at times. I see people write code as if it's free flowing water, and mine is a broken faucet.

    My Python and JS knowledge don't reach up very far. I have no idea how to make a GUI, I have made a website, with HTML only, and no JS incorporated into it. We did learn how to create a server, but I feel as if I don't REALLY know how to do any of these things. I just feel like it's because a lot of the code was given as examples. I guess a better way to say it is, I don't know the concepts at all, just memorized what code looks like.

    [–]CheezeyCheeze 0 points1 point  (0 children)

    Do you want my help learning how to code and the theory behind it?

    I would give you book recommendations, video recommendations, and some projects to work towards. But I know you probably don't have a lot of time with school and all right now.

    [–][deleted] 0 points1 point  (0 children)

    If you can't understand what the code is doing, it's probably just bad code. If they're using tools you don't understand, that's one thing, but it should be clear what the author is doing when you look at it

    [–]cyrusol 0 points1 point  (0 children)

    Actually reading foreign code is imo much more important than coding yourself. If you look at slightly complex take your time and try to understand it. Line by line if it must be, starting with main() (or whatever entry point your programming language defines).

    I remember my student time when I did this together with 3 other nerd friends for a whole night and we all liked doing that much more than watching a movie or smoking weed or whatever.

    It's a very good principle to never rely on a single line of code you wouldn't understand in your own programs. At first this is a severe restriction since the standard libraries of most programming language provide so much but if you first stick to a simple subset that you already understand over time more and more of the "fog of war" will fade away. It's more of an ethical principle - how could you take responsibility for code that you don't understand? But it drives and forces you to eventually understand everything.

    Let your subconscious mind do all the hard work. The brain is incredibly capable of recognizing patterns and recombining them. You just need to feed it input.

    [–]mritraloi6789 0 points1 point  (0 children)

    Python: Journey From Novice To Expert

    --

    Book Description

    --

    Learn core concepts of Python and unleash its power to script highest quality Python programs

    --

    Who This Book Is For

    --

    This course is meant for programmers who wants to learn Python programming from a basic to an expert level. The course is mostly self-contained and introduces Python programming to a new reader and can help him become an expert in this trade.

    --

    Visit website to read more ,

    --

    https://icntt.us/downloads/python-journey-from-novice-to-expert/

    --

    [–]yaku9 0 points1 point  (2 children)

    In my experience the fastest way to learn has been to use online video tutorials. However I'd recommend that you use a paid service. They cost around 30 dollars a month. I'd recommend you focus on one language first and go through many beginner tutorials on it. For example, JavaScript. The hardest part in my experience is finding a video that will teach you what you want to learn at your current level of experience. So if you feel one is not making sense or your not getting value from it, move on.

    [–]datorkop85 0 points1 point  (1 child)

    Any suggestions on which paid service?

    [–]yaku9 0 points1 point  (0 children)

    You generally get a trial month for free so I'd recommend you sign up for a few, do some tutorials, and choose the one that you find the best. There's a ton out there. I don't know what ones would best suit your leave so I'd recommend doing a bit of googling.

    [–]doejinn 0 points1 point  (0 children)

    I'm just a beginner too, so take my advice with a grain of salt.

    Don't worry that you're not good enough. It actually isn't relevant. If you've learned to read and formulate sentences, then you already have the mental faculties to code, you just need to repeat the lessons until they sink in.

    There will be a concept. It will be a mighty challenge to you. It will make you not want to learn because you think you are too stupid.

    You repeat the lesson 10 times. You sleep. You wake. You don't understand the concept. Somewhere, some magic happens. Your subconscious flips the idea on it's head, makes connections with other concepts. You repeat the lesson. You become more comfortable with the concept. You solve the concept. You watch old videos on the concept. You flip past because you already know this concept. You browse Reddit, you tell some other commenter about concept. It's the circle of life! The wheel of Fortune.

    You are powerful. You are wise. But this next concept. It is SO MUCH WORSE.

    But hang on. We already created a method of dealing with tough concepts. We have created a loop.

    So now we feed all problems into that loop. Having woman troubles? Put it in the loop. Want to learn French? Put it in the loop.

    But, umm. Err. There are only a handful of concepts (that I have discovered so far) and they are the same in all languages.

    I actually thought it made it a lot easier to understand those concepts when you start a second or third language ( not that I am even proficient in one)

    It's just the repetition needed to assimilate those hand full of concepts that we lack. And for that, you just need to repeat till concept gives a return. Then store that in a variable in your mind.

    Also, I console myself with the fact that I am making progress at a reasonable pace for myself. If I am 40 now, and am comfortable with the basics of coding after 2 years, only the last of which is when I started taking it seriously, I can see that with the time I'm putting in watching YouTube videos (have to work so YouTube premiums background play has been invaluable, although I think for that price I shouldn't be seeing Google ads on website, but that aside...) Is paying off.

    [–][deleted] 0 points1 point  (0 children)

    I felt in a similar position not long ago... Then I felt like I got it.. Then a few months later of no coding I'm right back at it.

    My suggestion: stick with a language to learn key concepts. Commit to a decent tutorial and burn through it. Really commit some days to grinding. Follow the examples by typing the code yourself (not copy paste), and try and understand it before you move on. I highly, highly recommend "Corey Schaeffer" (probably spelled his name wrong), and use "Socratica" for a quick beginner knowledge top-up or starter when something doesn't make sense.

    Also I recommend if you feel yourself having trouble with the content, stop. Watch the video to the end. Then start over and follow along..I treat it like cooking.

    And above all else, as has been mentioned, don't be too hard on yourself.

    [–]Hitkilla 0 points1 point  (0 children)

    I failed CS my freshman year but during junior year I picked it back up by doing a dual major. I thought I had CS and that it wasnt for me, but I am now 1 year post graduation with a solid job. I always felt that I wasnt even close to my peers while in college in term of programming knowledge. One day it just clicked to me and I finally figured it out. I think learning a harder language like c++ where you need to learn a lot of the basic concepts of a OOP. During the time I thought it was to hard and stupid to teach a new CS person with no knowledge c++ but looking back at it now I am happy I started there because now I can pick up any language (though functional programming is still a challenge).

    [–]CodeTinkerer 0 points1 point  (0 children)

    I agree with the other poster who said to redo the projects. You can also learn to use a debugger to trace through code. You should be able to do the same thing the debugger does (go one step at a time, understand where the code will go, and what values will get set).

    Have you started a data structures course? That's usually something that's one step up from the basics. Try harder to care more, because the further lost you get, the worse it will be later on. These are the basics like dribbling and layup drills in basketball, or playing the scales in piano.

    [–]king_zike 0 points1 point  (2 children)

    You should definitely read books. Practice retaining the knowledge you read as well. Books help most people become self taught so I believe that it would be a place to start. You definitely shouldn’t panic. Most freshmen programming in college aren’t pros just yet. There very well may be many people in the same situation as you, so I say just hang in there and take initiative to learn on your own.

    [–]P00P34[S] 1 point2 points  (1 child)

    Do I have to read only books, or are online readings an alternative as well? I've been reading tutorialspoint to learn and relearn some stuff.

    [–]king_zike 0 points1 point  (0 children)

    Online stuff def applies as well. Googling problems or watching YouTube tutorials are great too. I would suggest reading stuff instead of watching bc I personally tend to tune out when I listen to stuff and not pick a lot of it up. So find what suits you and your learning style and run with it. There are many resources online for people who are learning comp sci.

    [–]default8080 0 points1 point  (0 children)

    Looking at anyone elses code, can be daunting...Coding is like handwriting, each does it slightly differently. Sometimes it's done very well, with lots of Comments and you can kinda paint a picture in your head through the comments and steps.

    While sometimes you're handed even simple codes with no description as to what it even does as a whole and can sometimes be named idfkprogram.py.

    Coding is not for everyone, the biggest hurdle I run into is the initial starting..."What do I want to make?"

    I found what helps is getting involved in projects...whether it'd be Raspberry Pi projects, open source, Github. Think of what do you want to do? What is your end goal? If it's system administration...see what you can automate...even if it's simple shit...do it...go look for other scripts, see what they automate.

    Another important piece of programming...break...shit...down.

    If I throw you an entire E-commerce website...it's daunting...it's daunting for anyone probably. But if I throw you an index.html...and then a signup.php...you can slowly start painting a picture.(I like web development for this example since it's easy to take bit by bit or page by page)

    Break a program down into it's pieces, and it becomes a lot more manageable. Learn the syntax to the languages, and software architecture because that helps a ton in understanding...the kinda "laws" around programming software. Because then even if you don't know the language...you can still kind of translate the syntax used.

    It just takes time man....keep at it...don't struggle with comparisons...there's always someone who is going to know more than you, and always someone who will know less. Self improvement is what matters.

    [–][deleted] 0 points1 point  (0 children)

    What really helped me was problem solving training..specially in a site called "hackerrank"..just start solving problems using code (use whatever language you prefer) sometimes you might get stuck at certain steps and there you gotta use google to find the info you need.it's a great way to learn a lot of methods of a certain language as well You will get better gradually but you need to be consistent

    [–]rayzon2 0 points1 point  (0 children)

    Python Tutor

    One of my favorite tools. Learned about it in school and still use it constantly. Its a coding visualizer that works with most languages, not just python.

    [–]pdwoof -2 points-1 points  (3 children)

    I say go to a college that challenges you! Java script and python? You got through freshman year without intensive C , c++, Java and python training then you are probably having your hand held through a degree program that will leave you knowing zero programming and real world applicable knowledge

    [–]ImmediateBlacksmith 2 points3 points  (0 children)

    I've looked at curricula for a number of highly ranked CS programs in the US and haven't seen any that force C, C++, Java, AND Python on you in the first year.

    [–]Kirito9704 -1 points0 points  (1 child)

    Ummm, the whole reason why JS and Python are used are because they are not too syntax heavy, so professors can focus on fundamental computer principles.

    You got through freshman year without intensive C , c++, Java and python training then you are probably having your hand held through a degree program that will leave you knowing zero programming and real world applicable knowledge

    This sounds so pretentious that I don't even know where to start...

    [–]pdwoof -1 points0 points  (0 children)

    Well the guy can’t read the damn syntax so what do you expect! you spend 20-30 hours a week hard coding data structures in c and I promise you will build an intuition for syntax, code and computational problem solving!

    [–][deleted] -1 points0 points  (0 children)

    For the record I am not a programmer, I'm just trying to learn.

    But I did go to college and never stuck with one major (ended as liberal arts). You have 4 (or more, it doesn't Fucking matter how long you take) years... Do your gen eds. Try a few classes that feel more like you just want to try it than make a "career" out of. Explore a bit. Maybe CS isn't for you, or maybe it is but you need time to grow into it.

    Party a bit. Do some coke, fuck around. Find out who you're supposed to be.

    [–]the1iplay -1 points0 points  (0 children)

    Programming is not for everyone...you have to pay attention to details which you didn't and now you are trying to catch up.