• Breaking News

    Saturday, December 30, 2017

    A noob programmer's opinion on how to learn to code. Part 2. learn programming

    A noob programmer's opinion on how to learn to code. Part 2. learn programming


    A noob programmer's opinion on how to learn to code. Part 2.

    Posted: 29 Dec 2017 03:37 AM PST

    3 months ago I wrote a very discussed post titled "A noob's programmer opinion on how to learn to code".

    This is my follow up, three months later. In this I'll discuss my own points, the comments from the point of view of somebody who's still learning and is still a noob. What where and still are my difficulties. On what I was wrong and what I downplayed or gave much too emphasis.

    First, I'm gonna write my new list, later I'll review my original points.

    a) Set your goals.

    The most important aspect to face before you start learning.

    If you're solo learning at home, which is probably the real target of this post, you need to decide what are your priorities.

    Is finding a job as soon as possible your goal? Do you want to be a game developer? Or maybe you want to write the next big thing on the Apple and Android Store? Or maybe you want to learn to code for big data. Or you want to program your Arduino. Or you want to make robots. Or maybe you just want to learn to program to make your life easier and automate some tasks you have everyday.

    Deciding what are your short-mid-long term goals is the most important thing you need to do as a beginner because it will influence both your path and the outcome of your studies.

    If you're priority is learning to code to find a job as soon as possible you should look at what is more requested in your area (hint: there are good chances that C# and Java despite not being hyped a lot will be kings in terms of job offerings). I'm telling you that because a lot of people get into web development and start to learn node, express, NoSQL databases, just to find that the Oracle way is still, by far, what will get you a job. But this might be true in my area and different at yours. Don't buy the internet hype, look at what are employers actually looking for (if your main goal is to find a job asap).

    Once you set your goals, decide how much time you can dedicate towards them every week. Compiled languages (such as C/C++/Java) are way less friendly if you can only code one hour a week and probably way out of your scope. If you have lots of time to dedicate to programming (you're a student or unemployed) then those languages start to be way more appealing and will arguably pay dividends when you'll start learning a second language.

    b) Understand what programming is.

    Programming got easier as I understood few things I thought were just theory for CS professors. You know the kind of stuff that sounds like nerd hypsteria at start and doesn't make much sense.

    But yes, coding is often not the hard part. Actually as Linus Torvalds once said "Bad programmers worry about the code. Good programmers worry about data structures and their relationships."

    There's a very huge emphasis on code, code, languages frameworks when you begin. Most tutorials, guides, books, will emphasize code, code and code.

    One thing I understood in my path of solo-learning is that programming is all about getting data as an input, processing the data, giving data out as an output. While the emphasis is all about the middle part and the data part is barely touched it is actually the most crucial and important part, and the only thing that matters in the end. Computer games take data, process it, output data (the most important data outputted being images). Web Apps take data, be it your sex, age, and other stuff, process it, and give a match on Tinder based on somebody's else data. Robots take data from sensors (electric signals), process it, output other data that moves the robot. Programming is all about data.

    You probably don't need to become a master of algorithms and data structures, but I recommend you to pick at least a book or try to learn about them on Youtube. Don't focus merely on the coding part, try to dedicate a part of your learning time to data structures and algorithms. Once you learn basic operations in your language of choice (math and control flow) you're probably good to learn data structures. One drawback of data structures and algorithms is that most courses use C/C++/Java to teach them, but there are good books on data structures and algorithms for pretty much every popular computer language.

    Also, paper and pen are good ways to conceptualize programs. The code is the implementation of your logic. Writing your logic on a piece of paper will give you much more clarity in what you actually need to write.

    c) Do not try to learn too many things at once.

    Just don't. Don't start learning multiple languages. Or multiple frameworks. If you have few months of experience on JS there's absolutely no point into learning a bit of Angular and a bit of React and a bit of Vue, etc. Just don't. Get good at one. Solve complicated stuff on one. Master one of them. Each language and library and framework you really master will give you huge advantages when learning the next one, because you'll have the power and knowledge to pick up the benefits and the drawbacks of the new technology you'll learning.

    Think programming sort of like creating orchestral music.

    Do you think Mozart or John Williams, or whoever started writing a soundtrack or an opera without learning music, ignoring most of the theory and play all instruments at once? No, not at all. They all started learning to read music first, it's theory. Then they played a single instrument for thousands of hours. Practicing and practicing. Then they slowly started to add more instruments, while also learning how to compose music. Now, if those guys were the programming equivalent of Linus Torvalds or John Carmac, chances are you're not, most of us are not. That is not to discourage you or us, this is still to emphasize the need to solve problems with the tools you have. The reason why we have such amazing tools, games, applications, is because behind them there are people who are insanely specialized on what they do and have up to decades of experience on those subjects.

    So, if you're on a two months streak of learning React, this is the best moment to learn it even more. If you want to give a test to other frameworks just to see the differences between them it's cool, but for the love of god, keep learning React. If you're learning C# and Unity from an year, this is the best time to learn it better. Not to jump on C++ and CryTek.

    If the library you choose for webscraping has some limits, try to work around those limits, learn it's code. You'll learn much more than by jumping on another one.

    Master what you got. I can't count the times I wasted time by learning yet another library/framework just to find out that with more patience I would've solved my original problem with the tools I already had.

    d) Try to use libraries as little as possible.

    You don't need JQuery for drag and drop. You don't need Angular for single page web apps. You don't need Bootstrap for responsive design. At the beginning I thought all of these technologies were for "noobs" to solve their headaches. The more I look at them, the more I understand that they do not solve programming problems. They solve business problems. You need your application to work on a huge number of browsers. You need to implement a feature and give the results to your team leader in few hours. That's what libraries mostly accomplish. They save the developer 2-10-100 hours of writing and testing for problems that are very common. But as a newbie what you exactly need is to learn to solve those problems. Let me put it this way. If you want to find a job and you always solved your problems by leveraging libraries to solve them what are you going to do when you have much more complicated problems and no simple call to your framework to solve it? Not even to mention that the licensing of many of the tools you use might not apply for the application your company is developing. Wordpress just recently announced they had to rewrite their Gutenberg page editor dropping react. This is very common and happens even to companies that have armies of lawyers reading licenses. Regardless, there are only benefits you can get by learning to develop by using as little tools as possible, possibly zero. They will pay off when you will actually delve into those libraries, and will pay off when you'll find a job. Trust me, you don't want to end up like the guys asking how to add two numbers in jQuery.

    e) Don't just write code. Read it as well.

    As a musician you first learn by playing other composers pieces. As a writer you start by reading hundreds of books. As a programmer you're no exception. Obviously since programming is solving problems through data manipulation, nothing will beat learning how to solve problems rather than solving them. But that doesn't mean that even if you solved a problem (the thing you should focus as a starter) you solved it in an ideal way. Read the code of the libraries you use. Start from the main file. Why are they doing stuff the way they do? It's intimidating at first, but it's a huge learning opportunity.

    f) Have somebody reviewing your code.

    The programming community is generally very friendly. Stackoverflow, chats, reddit, are places where many programmers take teaching and helping and criticizing as opportunities to get (or feel) better as programmers. Leverage it. Chances are that your constructors suck. You didn't need the else-if condition here, it was going to be executed regardless. Your code structure is horrible. Maybe you are returning three different values out of your function, and then you're calling foo()[0], foo()[1], foo()[2] to put those values in a function. Why don't you return an array of values you put in a single variable, rather than calling foo() 3 times?

    Having somebody to review your code is a precious learning experience. He might not even be always right, but by discussing with him you'll learn a lot. If you can't find people to review your code for free on some board or chat, find somebody who'll do that for money. Set a 50$ budget a month and ask somebody to review your code once every few weeks. Save on that PS4 game. It's really worth the money. But please, don't try to find some mentor or help for trivial problems like "how do I do X". Doing how to do X, whatever X is, is exactly what you need to learn. Even being able to find the answer by googling is a skill you need to learn. Use stack overflow or boards for that. Try to find a mentor who'll review small but complete applications (something that doesn't have thousands of lines of code) or relevant self enclosed parts of it.

    About my old points:

    a) Learn Python as your first language.

    This was a very debated topic, and looking back, for good reasons. Mind you, I still believe that Python is a perfect language for noobies, but reality is that it doesn't matter as much, and stuff like forced indentation, etc, doesn't matter much. Pick the language that suits your goals better. Then master it.

    b) Code in the terminal.

    I still do that but it's only really effective if you're writing small stuff. I still think that having an interactive environment is nice as you don't need to pollute your code with console.logs, etc. You can learn much and I can definitely say it helped me a lot and still does (just think if we didn't have developer console in our browser for in-fly DOM manipulation..).

    c) Code stuff you actually need.

    This is still a very good advice, and probably the best one I made.

    d) Learn in classical ways.

    There's plenty of college courses and plenty of programming books out there. I still believe that learning in classical ways is effective even if it feels much slower. But it's not as important as I thought.

    e) Use the internet to ask and find questions.

    Well, this is pretty obvious.

    Hope I'm giving my fellow noob programmers something interesting to think about. As always, it's just a noob's opinion, probably in three months time I'd do things differently, yet I'm still happy I actually choose to keep writing tools I needed and that I choose Python as my first (real) programming language, even tho I'm now mostly focused on JS (because my goals changed from being an hobbyist to being somebody looking for a job :P).

    I hope that in 3 months time I'll be writing as a Junior developer.

    submitted by /u/ep1939
    [link] [comments]

    Very stupid Noob question don't upvote

    Posted: 29 Dec 2017 04:38 PM PST

    Ok so im very new to this stuff, And i recently downloaded visual studios and the C++ stuff.

    But when i make a new blank project, There is no "Solution center" Only a "Properties" tab on the side. All these videos on youtube they have that solution center tab on the side but i cant seem to find it and ive been looking for like 2 hours now???

    submitted by /u/wah97
    [link] [comments]

    How I represent a philosophical argument in programming?

    Posted: 29 Dec 2017 01:28 PM PST

    An example you can give can be language agnostic, and I'll just do my best to convert it to Java. Let's take a good, simple argument.

    • Socrates is a man.
    • All men are mortal.

    • Therefore, Socrates is mortal.

    I think we can agree that sentences are something that can be true or false, and an argument is simply a series of sentences. Obviously, sentences can be represented as booleans, but is there a neat, formal way to do this? To represent any argument as essentially philosophical logic?

    submitted by /u/WindowsKidd
    [link] [comments]

    coding something that boots in arm assembly

    Posted: 29 Dec 2017 08:23 PM PST

    i am beggining to learn assembly and to get better, i decided i would try and code something that boots for my raspberry pi. Just printing a hello world or making the screen red would be a huge archievement for me.

    If any of you guys have tips and/or ressources you could give me, it would help a lot. Thanks.

    submitted by /u/terramorpha
    [link] [comments]

    How do you pick and learn to focus on projects instead of wanting to do 1001 things at once?

    Posted: 29 Dec 2017 03:40 PM PST

    Sup guys I've been having some troubles with this lately. Started Computer engineering this year, first semester and been doing good, hardest college in my country, it takes work and I know that with effort I can have good average (although best average isn't my objective, it would burn me out and would throw me into existential angst, been there done that), but I need something more.

    There's so much out there that interests me that I can't see to grab onto something to focus on. I'm in a few extracurricular stuff, non "pc" related (marketing, business contacts and events) this doesn't take too much time, maybe once in a while I have to organize stuff for a more intense week but it's all good fun.

    Problem is my "side projects", I literally can't pick something to do and I end up doing a lot of very shallow work.

    Right now I'm:

    • Creating a website for my father (this is proper work, based on things I learned last year over 2 or 3 unfinished Udemy courses)

    • Looking into OpenCV with Python for a simple App idea, but just crashed into needing to learn Android development and another language for OpenCV since python isn't the best pick for android;

    • Researching into blockchain, I'm interested but have no clue where to start (been learning about the theory but no idea what to do with it);

    • Interested in trying security, my college has a great CTF team, I've gone to one reunion and it was fun, I would need to train but sounds fun and somewhat interesting but not sure if there's future in investing in that;

    I just don't know what to do. They all seem great. How do you guys solve these situations?

    submitted by /u/DeMephisto
    [link] [comments]

    Subreddit alternative to stackoverflow.

    Posted: 29 Dec 2017 09:46 PM PST

    Is the a subreddit that can be used as an alternative to stack overflow. I have used reddit for a long time and don't like the limitation of stack overflow. Specifically about web development. Or should I use Quora?

    submitted by /u/maksim112
    [link] [comments]

    How do I start contributing to random open-source programs on Github?

    Posted: 29 Dec 2017 04:58 PM PST

    Right now I'm looking for a challenge. I've built some stuff, not really that special but I guess I'm learning.

    However the one thing I've never done is add on to an open source project.

    I went on a thingy on GitHub that showed some open source projects that are making the world better. I was hyped up, but as I opened the code I was legit lost. What does any of this do? What do I even add, I have no familiarity with the technologies used etc.

    Did any of you just join an open source project?

    Since my knowledge is limited to android and by extension java, and python(starting to learn and am building an API from scratch, a simple thing that just reads from a database) I'm already pretty low on the amount of projects I can contribute to.

    How do I go about the process? Is it even a valuable learning experience? It feels like a must, to be able to read a random guy's code. Right now my biggest problem is finding a thing. How do I find things on github? I think it would be better to learn from an experienced coder and starting REALLY small. The next problem is adding stuff. Do I just go through the TODO: ? Is there a special segment in the code where the programmer writes some features that havent been implemented?

    submitted by /u/TheBravePoro
    [link] [comments]

    I used to be into programming on my TI-84 in BASIC and still am pretty decent with it. Where do I go from here?

    Posted: 29 Dec 2017 03:14 PM PST

    I'm a sophomore in high school and I got my first graphing calculator in 7th grade. I learned to program it and eventually became known at my school for being able to. I was semi-active on Cemetech and CodeWalrus during that time. I stopped around last year. But I recently started screwing around on my calculator again and I still have the language down. How can I make a smooth transition from this basic language into something like C or Python?

    submitted by /u/SodiumGeek
    [link] [comments]

    How to make my Application open the "Settings" menu on another. I have the Source Code.

    Posted: 29 Dec 2017 10:29 PM PST

    Hey all!

    So.. in Dolphin for Windows..

    There is a "Configuration" option for instance, within the application itself.

    Example: Right here

    Open Source: For the Program in the Example

    I am working on a side project, and I would like MY Application to have a "Settings" button that routes DIRECTLY to that "Configuration" window. I don't want it to open the core application, but just that panel itself. That way it'll still send the changes through to the .cfg within the program.

    If there is a way to do this - can someone please elaborate a little? I need to apply this to a few other programs that have open source code.

    Just learning C++ now - but I come from other non-application based Programming areas. (Class 5 Switches in Telecommunications / IP Network Routers + Switches).

    I have the Source Comp opened in my IDE of Choice - Visual Studio Community 2017. I've got a few Add-Ins as well, and access to whatever else I may need.

    Thanks!

    submitted by /u/Riviawolf
    [link] [comments]

    Are there any languages that I can make run on GNU/Linux, macOS, and Windows easily?

    Posted: 29 Dec 2017 06:15 PM PST

    I want to make some 2D games, and I want them to run on everything.

    I've never programmed before, at least not for real. I spent two weeks learning GML once and made some bad games, I also learned the basics of ROBLOX lua and I didn't do much with it.

    submitted by /u/sexyjpg
    [link] [comments]

    Console for C++ question

    Posted: 29 Dec 2017 09:58 PM PST

    #include <iomanip> #include <iostream> using namespace std; #include <cmath> int main() { // input values int D, T, years; cout << "How many years until you retire?"; cin >> years; cin.ignore(1000,10); // output (calculated) values cout.setf(ios::fixed); cout << setprecision(2); float p = p*pow(10, 2); cout << "Expected annual interest rate per month:"; cin >> p; cin.ignore(100,10); cout << "Amount deposted per month:"; cin >> D; cin.ignore(100,10); T = years * 12; int S = D * ((pow((1 + p), T) - 1) / p); // echoing input values, unformatted cout << "In " << years << " years "; cout << " at " << p << "%, $"; cout << D << " deposited per month will grow to $ " << S << "."; // formatting output (see 4.2) cout.setf(ios::fixed|ios::showpoint); cout << setprecision(2); cout << S << "." << endl; } 
    submitted by /u/cidermyvinegar
    [link] [comments]

    Looking for suggestions on proper practice(s) for a project I have in mind

    Posted: 29 Dec 2017 09:52 PM PST

    Hi all,

    I have an idea that came into my mind a few nights back and wanted to start implementing it, given that I have a few weeks off. The main premise involves users adding content to a series of fields (form?), having them submit it and adding it to a database. The page/form should update dynamically and should be editable in real-time.

    I am not looking to have the project done for me, but merely looking for what would be the best way to approach it. Here are my thoughts (as a beginner web-dev):

    • HTML front page with form
    • POST submission transfers to PHP inserting into database
    • MySQL database setup

    I am not sure if jquery should/could be implemented to allow for the real-time display/update. If so, a little push in the right direction here would be appreciated! Not sure how to properly implement this.

    Any suggestions on how you guys would go about it would be much appreciated.

    I do have future thoughts of using AJAX to auto-suggest content already used/submitted, but I'd think those are features for a more mature program.

    Thanks!

    submitted by /u/iMeanDUH
    [link] [comments]

    I go into python scripts from cmd and type in pip but it says invalid syntax even though pip should be downloaded.

    Posted: 29 Dec 2017 09:33 PM PST

    I have the file "c:\Python34\Scripts\pip.exe." however when I put in "cd c:\Python34\Scripts\pip.exe" (into the command prompt) and then type in "pip" or "pip --version" it just says invalid syntax.

    submitted by /u/dropmyname
    [link] [comments]

    What language(s) and things should I learn if I want to create a PC Simulation game?

    Posted: 29 Dec 2017 09:25 PM PST

    I have some background in programming, but not nearly enough to make a game. What languages/frameworks/etc. should I focus on? I really want to make a game similar to prison architect, or some type of sim game someday.

    submitted by /u/CodeSkill
    [link] [comments]

    Beginner having trouble getting if / else statement to work

    Posted: 29 Dec 2017 09:16 PM PST

    My code is below. I'm just starting, so I'm only using the one class at the moment and make it work. At the first 'if statement' is where it stops working. Any suggestions is helpful. Thank you.

    import java.util.Scanner;

    public class Cars {

    public static void main(String[] args) { Scanner carType = new Scanner(System.in); Scanner panAnswer = new Scanner(System.in); String color, make, model, type, answer; int year; double listPrice, discount, totalPrice; System.out.println("Welcome to Gaius' Porshe dealership!"); System.out.println("Are you looking for a new or used vehicle?"); // next line is stored in type // notice how I couldn't say String type, otherwise that is making it // think I have another string names type type = carType.nextLine(); // pull the method based on the type 'new or used' // if type == "used" pull used method with list of cars and prices (same for if new) System.out.println("We have several " + type + " cars for you to choose from: "); if(type == "new") { System.out.println("We have Porshay Cayennes, 911s, Boxters, Macans, and Panameras! "); System.out.println("I'm going to guess you are looking for a Panamera?! "); }else { System.out.println("something else "); } answer = panAnswer.nextLine(); if(answer == "yes") { System.out.println("You and everyone else! "); }else { System.out.println("something else "); } } 

    }

    submitted by /u/Larfies
    [link] [comments]

    Password encryption with BCrypt and storing it

    Posted: 29 Dec 2017 09:16 PM PST

    So far I've been encrypting password with BCrypt with no salt and store the encrypted value in the database.

    If I want to start using the salt:

    • should I use a single salt for the entire system
    • should I use a different salt per entry (per user), and if that's the case, what's the best way to choose & store the salt? Should I even be storing the salt (if not stored, how do I know what the salt was?)
    submitted by /u/noobcser
    [link] [comments]

    Help creating a table in Winforms (C#) with varying numbers of rows.

    Posted: 29 Dec 2017 05:28 PM PST

    Hey guys, so I'm creating an inventory tracking application.

    I would like to create a table that has a set number of columns but the user can decide the amount of rows that are necessary. I would like each cell to be formatted dependent on which column it belongs to. So for example, one user might want 10 rows, and there is 5 preset columns that the user cannot change. Column A might contain a label, while column B might contain a textbox.

    Doing this isn't totally straightforward. Can someone please guide me in the right direction? (Also if I've been too vague please ask questions! I really need help!)

    submitted by /u/HippieInDisguise2_0
    [link] [comments]

    What Python courses you recommend for novice learners?

    Posted: 29 Dec 2017 08:30 AM PST

    No need to be only free courses. Most important to be quality.

    submitted by /u/ArkGabriel
    [link] [comments]

    What Is A Good Wordpress Course To Take As A Beginner?

    Posted: 29 Dec 2017 01:19 PM PST

    I am trying to figure out what is a good Wordpress course to take as a beginner to have me ready for a job.

    submitted by /u/cpscott1
    [link] [comments]

    Programming for a career out of high school?

    Posted: 29 Dec 2017 08:45 PM PST

    I'm going to take some time off school before I enter college because I can't afford it right now. I don't think this is covered in the FAQ (I couldn't find it), so what would be good for me if I wanted a career out of high school?

    Which languages, platforms, etc. are highest in demand right now? Don't have a specific area of interest ATM.

    EDIT: Attending college at a later date if I really can't figure out some kind of good financial aid program.

    submitted by /u/tame_turaco
    [link] [comments]

    Is there a mature alternative to Flask/Sinatra implemented in a statically typed language?

    Posted: 29 Dec 2017 08:19 PM PST

    I worked with Flask for class recently, and I quite liked it. But I personally prefer statically typed languages.

    I'm looking for something as syntactically similar to Flask/Sinatra as possible. Crystal's Kemal library is a great example of what I'm looking for, but it is far from mature.

    submitted by /u/iTARIS
    [link] [comments]

    What to study to become a game programmer?

    Posted: 29 Dec 2017 08:09 PM PST

    I would like to know the topics to study to become a game programmer (example: first algorithms, second data structures, etc).

    I studied programming one year ago, but at that time I studied poorly and wrong and I forgot almost everything.

    I'm planning to use Unity, so, my language of choice is C# (which I know a bit).

    Please recommend books, as it is easier for me to follow, than videos.

    Thank you.

    submitted by /u/duskmantle_guildmage
    [link] [comments]

    I'm deadly anxious about choosing a stack that will land me a job. Am I doing the right thing?

    Posted: 29 Dec 2017 07:57 PM PST

    Hey everyone,

    I'm one month into my journey of learning the JavaScript stack (vaguely following FCC). I'm completely self-taught and have no degree. I need a job as soon as possible. (I just recovered from a years-long illness enough to study and get a job.)

    I look at jobs near me, and all I see is Java & .NET. I even see PHP more than JS! Those seem heavy on Computer Science, not the kind of thing a self-taught developer learns in 6 months. For reference, I'm in Los Angeles. I chose JS because all the bootcamps and online resources say "This is how to get a job as soon as possible."

    What do I do? Are there really JavaScript jobs for self-taught coders? I'm willing to relocate anywhere in the country to get a job -- I just really need a job. I'm trying as hard as I can to learn JavaScript, but I can't shake the anxiety that I'll come out the other end of this and employers will say, "Sorry, you just wasted your time." We need someone who spent several years in school learning how these lower-level languages work.

    I'm just so scared that this isn't going to work out. Any advice is appreciated. Thank you so much.

    submitted by /u/anxiousdevv
    [link] [comments]

    Retreiving a list of entities through a generated Jersey REST client

    Posted: 29 Dec 2017 07:54 PM PST

    Iam having trouble receiving list of entities from a rest service.

    I generated a Jersey REST client through netbeans and Iam using it like this to retrieve a single entity. (this works)

    agentDTO - is a data transfer object

    agentCli - is the generated client

    agentDTO a = agentCli.find_JSON(agentDTO.class, "5"); 

    This doesn't work and crashes.

    List<agentDTO> tList = new ArrayList<agentDTO>(); tList = agentCli.findAll_JSON(List.class); 
    submitted by /u/Roggi44
    [link] [comments]

    Coders that use frameworks are not real coders...

    Posted: 29 Dec 2017 10:50 AM PST

    Hello everyone,

    So a few days ago at a coffee shop I was coding and some Radom person engage me in conversation.

    Long story short he was sharing his thoughts on people that code using a framework aren't real coders/programmers. According to him using a framework is cheating.

    He said he works in HR for a major tech company and when interviewing people if they mention using frameworks he automatically disqualify them for the job.

    What are your thoughts on his view? Let's discuss

    submitted by /u/SpareTech_O
    [link] [comments]

    No comments:

    Post a Comment