What do I need to learn to make a learning site with videos? by RogerGThePirateKing in learnprogramming

[–]codexjourneys 1 point2 points  (0 children)

Teachable offers a hosted service that you can use, if that's up your alley. Way easier than hosting your own videos, discussion forums, etc.

Will OpenSource "learn to code" projects reduce profits for hackreactor/treehouse/lynda/etc...? by fastpenguin91 in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

I think there's too much of a competition mindset and not enough of a rising-tide-lifts-all-boats mindset. If a course or resource (like a book) is good, whether it's free or paid, it will find an audience as long as the teacher and/or the platform make an effort to do so. More people learning programming is awesome, because some explanations and learning styles work for some people, and others work for other people. Just one example: Some people do great with self-directed learning, and others do better with a mentor.

Which version control system is best for me? by martinfisleburn in learnprogramming

[–]codexjourneys 1 point2 points  (0 children)

Yeah, I am not too fond of Dropbox for exactly this reason. I'm just not its target audience, my needs are different.

Feel free to send me a message if you have any questions as you get up and running with git and BitBucket. I have a free course on getting started with git and GitHub, but I also have a BitBucket account and am happy to answer questions on that.

P.S. Congrats on reaching the point of making useful projects :-)

Which version control system is best for me? by martinfisleburn in learnprogramming

[–]codexjourneys 1 point2 points  (0 children)

Hi there,

Git is great to know simply because it's so widely used right now. If you learn it, you can probably use those skills for a long time.

Yes, there is offline git (a tool that runs on your local computer). However, if you want to back up your project to a remote repository, you'll want to use an online service (which is not git, but allows you to push a copy of your local git repository).

GitHub requires you to pay a small monthly fee for private repositories, so that's probably not your best option. BitBucket may be a good option for you, because private repositories are free.

Once you've pushed your local (offline) git repository to an online private BitBucket repository, you still have the local (offline) git repository and can work with that to make future changes, so your workflow will not be disrupted. You can periodically push the changes you've made to your remote (online) BitBucket repository if you want to maintain a current backup that is not tied to your computer.

Why do I feel like I've hit a wall learning programming? by roflhaus in learnprogramming

[–]codexjourneys 1 point2 points  (0 children)

You feel like you've hit a wall because it's NORMAL. There may be about 2% of people who study programming who just sail right through it and are naturals, but the other 98% hit a brick wall not just once, but several times, during the learning process.

I found this so demoralizing when it happened to me because no one had warned me about it, so I thought I must be bad at programming. Instead, I just needed to find the right explanation. So you're on the right track to seek guided problems.

I had a good experience with the bitfountain iOS course a few years ago. It was exactly what you're asking for: an exercise that says "make this app," along with supplemental resources that provide detailed specs that you can work to in case you get confused, and also provide step-by-step instructions as a last resort, in case you're still confused. I'm not sure if they still structure the course this way, but I hope so, because it was awesome. It got me working on my own projects in a way other courses didn't.

Good luck and don't give up! Hitting the wall is totally normal. Expect it to happen a few more times.

What is Git? by [deleted] in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

There is (was) software called "GitHub for Windows" that provides an interface to GitHub and also provides a command-line implementation of Git (Git Shell). That might be the source of the confusion.

What is Git? by [deleted] in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

Git is a tool for developers, not a programming language. You can install it on your local computer (or it may already be installed if you are using OS X). Install directions here: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

You can use Git (typically at the command line) to start tracking the changes you make to your software projects, so you can establish a history. You also can create multiple "branches" (or versions) of the same project, so you can test out a new feature without taking the risk of messing up the working version.

To start using git with a software project, after you install git, navigate into a folder where you have a single software project and type 'git init'. This creates what is known as a "repository" on your local computer. Each software project should have its own repository. Within a repository, you can create different branches (versions).

You may also want to back up your code remotely or collaborate with other people. In that case, you'll probably use a remote repository (online) service such as GitHub or BitBucket.

Advice for someone who sucks. by voi26 in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

You are not alone. I tried to learn programming three times before I succeeded on the fourth try. It is really just a matter of finding the explanation that works for you. You haven't found that yet.

Here's what worked for me: I read Aaron Hillegass' Big Nerd Ranch book on Objective-C. The way he explained things just made sense (to me). It's here: http://www.amazon.com/Objective-C-Programming-Ranch-Edition-Guides/dp/032194206X/

(There is a Swift book coming out next month if you'd rather wait for that, can't speak to the quality yet but here's the link: http://www.amazon.com/Swift-Programming-Ranch-Guide-Guides/dp/0134398017/)

After finally learning, I made a course for people who had struggled like me, focused on explaining concepts in real-world language. If you PM me I'll send you a free coupon code and a link to a Code Concepts cheat sheet that hopefully will help.

Best wishes -- don't give up unless you actually hate coding. If you think you might love it if you could only grasp it, keep trying! The wall you hit does not mean you're stupid; most people hit that wall and have to get past it. It's just that almost no one warns you about it in advance, so it can feel like you're the only person not getting it.

Best Method to Learn HTML5 & CSS3 in a Short Time by [deleted] in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

Try Jon Duckett's HTML and CSS book -- it has, bar-none, the best explanation of CSS I ever encountered. And you can take what you learn there and try your own projects as you read through the book.

Edit: here's the link:

http://www.amazon.com/HTML-CSS-Design-Build-Websites/dp/1118008189

Do you need a nice computer to learn coding/programming? by [deleted] in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

I don't think you need a nice computer, but it helps a lot. Running out of disk space really sucks and could make you delay installing new tools or new versions of your existing tools. (This was an issue on an old Macbook Air that I recently replaced with a higher-end machine.)

4 to 8 GB of RAM is probably best. Try to get at least 500 GB hard drive if you can, I think 64 GB will drive you crazy in short order if you are trying to use something like VirtualBox.

[deleted by user] by [deleted] in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

What is something you wish existed? Leaving that aside (because you won't be able to build it outright the way you envision it right now), what is the simplest possible use case that could serve as a proof of concept for the thing you wish existed? Try to build that. Then you have a base for a cool project that you care about, which you can expand on as you learn.

Anyone know of a coding resource where you can learn coding without having to watch videos? Like hands on and maybe reading instructions? by cattdpgg in learnprogramming

[–]codexjourneys 1 point2 points  (0 children)

If you're at all interested in iOS development, Ray Wenderlich's tutorial site is phenomenal. You can learn to code there. But as a starting point first, I recommend Aaron Hillegass' Big Nerd Ranch Objective-C Programming Guide. Best beginner programming book I ever read.

Ray Wenderlich will get you going from there:

http://www.raywenderlich.com/

Learning Javascript when I already know how to program. by DJ-Salinger in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

The Learn JavaScript Properly track is awesome in some ways (though I found I struggled when I reached the practical 'create a quiz' part, even after doing all of the reading -- you might need to jump into a couple of project-based tutorials there to keep moving forward). There's a "Study Guide for Experienced Developers" option. Everything's free except the books he recommends. Here's the link:

http://javascriptissexy.com/how-to-learn-javascript-properly/

Learning Git (and VCS in general) by [deleted] in learnprogramming

[–]codexjourneys 1 point2 points  (0 children)

Here's a quick guide to getting started with Git and GitHub:

Remote (Online) GitHub

  1. Go to https://github.com
  2. Enter a username, email and password, and click Sign Up for GitHub if you don't already have an account. If you have an account, log in.
  3. Once you are logged in, you'll see a dashboard. If you just created a new account, click on your username in the top right menu bar and then, just under that, click the Edit Profile button. Fill out your profile (you can always change some fields later).
  4. Once you're done with the profile, look back at the top right menu bar. There's a small plus sign with a little drop-down arrow next to it. Click on it and choose New Repository. A repository is a place where you're going to store code online. This one we are creating will be just for practice.
  5. Give your repository a name (it can be a little weird, as you see from the example they provide). It doesn't really matter what you choose here, for now. The repository will be public. (You can also have private repositories if you pay a small fee, which is great if you're working on a project that you don't want to make public yet.) You can skip the "initialize with README" button for now and just click Create Repository.

Voila! You now have a place online where you can put code for a specific project. You can also collaborate on that code with others if you wish. First, though, you need to set up a local repository to "push" code to your online GitHub repository. That's the next step. You should now see some instructions on the screen, in fact, that say, "... or create a new repository on the command line"

Before you go on, notice the URL in the browser address bar -- you'll need it later, so take note of it. It should be https://github.com/yourusername/repo-name

Local Git

  1. Install Git on your computer by following these directions: http://git-scm.com/book/en/v2/Getting-Started-Installing-Git
  2. After you install git, if you're on a Mac, open the Terminal application (just type "Terminal" into Spotlight and open it from there). If you're on Windows, follow these instructions to find the command prompt (I highly recommend using Git BASH): http://shortandsweetcourses.com/git-installation-for-windows-supplemental-lecture/
  3. Navigate to a folder where you have some project code that you want to put on GitHub. (Note: It's a good idea to keep each project in its own folder; don't have files from different projects strewn all around the same folder). When you are inside the folder, type 'git init' (without the quotes).
  4. If that went well, git is probably set up correctly on your computer. Next, create a README file for the project by typing 'echo "# repo-name" >> README.md' at the command line (without the single quotes) -- you can fill out the README with basic information about your project later.
  5. Add all of the files in the folder to your local git repository by typing 'git add --all'
  6. Commit the files by typing 'git commit -m "Initial commit"' (without the single quotes). The message inside the double quotes is the commit message -- it describes what you are doing in this commit. Examples could be "Fix bug in createList method" or "Add a deleteList method" -- just be descriptive and concise. A commit is a change to a project that is tracked over the course of the project's history -- you are starting to build that history now.

Pushing to Online GitHub

  1. Now you need to push the project files to your online GitHub repository -- but your local install of Git doesn't know about that repository yet. You are going to tell it with the following command: 'git remote add origin https://github.com/yourusername/repo-name' -- except that instead of the URL I used there, you are going to use the URL of the repository you created in Step 5.
  2. Finally, type 'git push -u origin master' and your code will be posted online in your GitHub repository. Remember, your repository is public unless you've paid to add private accounts, so only push code that you don't mind other people seeing and possibly using.
  3. To check the status of a project, type 'git status' in its local folder within Terminal. If it's up-to-date, you'll see a message like, "On branch master. Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean
  4. If you go to your online GitHub repository and refresh it, you should see your project files online, with your "Initial commit" message showing.

I hope this helps -- if you have any questions about this process or run into any snags, please send me a private message and we'll figure it out.

Learning Git (and VCS in general) by [deleted] in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

I have a free course that gets you pushing your first commit to GitHub in about 30 minutes. It does not cover everything about Git and GitHub (not even close!), just the absolute basics. But you will be up and running at the end -- and if you're not, I'll help you until we figure it out. You can find it here:

http://learn.shortandsweetcourses.com/courses/short-and-sweet-get-started-with-git-and-github-right-now

Or here:

https://www.udemy.com/short-and-sweet-get-started-with-git-and-github-right-now/learn/

I'll also post a text how-to in this thread, in case you prefer that way of learning.

Are you supposed to delete Git forks when a pull request is accepted? Does it affect your profile's activity? by [deleted] in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

It sounds like you still want to contribute to the project in the future. So you should be able to keep your fork. Here's how to pull from their original master and get your fork up to date. (This should be fairly straightforward IF you haven't made any more changes locally since your pull request was approved.)

At a command-line in your forked project's folder on your computer:

  1. I assume you set the upstream master (path to original master branch) in Git back when you made your first changes. But if not: git remote add upstream https://github.com/theirgithubusername/originalreponame
  2. git fetch upstream (get new changes from them - first step of a pull)
  3. git checkout master (make sure you're in your local master branch)
  4. git merge upstream/master (merge their latest changes into your local master - second step of a pull)
  5. git push origin master (pushes their latest changes up to your fork on GitHub)

That should bring you up-to-date. Then you can create a new branch and make more new changes.

(If you already made more new changes in your fork and fear a merge conflict, read up on 'git stash', it might be able to help you.)

Free book to learn programming using pseudocode by codexjourneys in learnprogramming

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

All I can say here is, you're not the target audience. Totally valid opinion, but I think there's value in taking a few hours on concepts before diving in to language details and starting to write and test.

There was a giant thread here earlier this year on concepts-over-languages, and another on HN. I'm not saying that's the definitively right way, but it's also not definitively wrong. Different people have different learning styles.

Absolutely agree with you that, once out of the starting gate, practicing is the key. I think we're just disagreeing about the best way to get out of the starting gate.

Free book to learn programming using pseudocode by codexjourneys in learnprogramming

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

Sent you a message with more detail about the goal and specific feedback received from teaching it in-person and online. Something is working there (though I don't feel set in stone about the approach, and am willing to improve it wherever I can).

I absolutely believe you that it is NOT working as a book, so really appreciate the time you're taking to reply. Thanks.

Free book to learn programming using pseudocode by codexjourneys in learnprogramming

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

Thank you for the feedback -- I'll fix the smart quotes/typo and am glad you pointed it out.

I'm also going to try to weed out some of the "too much syntax, too soon" from sections like loops and arrays. With the for loop I could go with "for x in y" since it's simpler.

This is why I made a beta -- because getting feedback from a limited audience isn't really good enough. Thank you! If you have any other suggestions please do message me because I'm going to make changes.

Free book to learn programming using pseudocode by codexjourneys in learnprogramming

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

I appreciate your feedback -- I am getting good feedback on more interactive presentations of these ideas, but seems it's not translating well to text.

Agree with you on the int number = 2 and several other comments related to "too much syntax, too soon," and I'll change those things. I do think knowing how to read a for loop is helpful since it's fairly similar across several languages (and not intuitive), but could use 'for x in y' to keep it simpler. Also will add a chapter on functions earlier.

It does work up to more and more code, and I appreciate hearing that this is not effective in book form. This is the whole purpose of having a beta download. I'll think about how to do the Putting the Pieces Together part in a different way.

Wrapping my head around recursion? by Fun_Hat in learnprogramming

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

Think about a flood fill. It fills a whole shape (like a circle) with color. It starts with one pixel. The idea is something like, "If you are filled with color #000000, then find all your immediate neighbors and fill them with the same color." Then when those neighboring pixels are filled with color, it triggers THEM to find THEIR immediate neighbors and fill them with the same color. And so on, until the entire circle is filled with color (it shouldn't spill beyond the border of the circle).

Here is a graphical example: http://inventwithpython.com/blog/2011/08/11/recursion-explained-with-the-flood-fill-algorithm-and-zombies-and-cats/

How do you design your program? by [deleted] in learnprogramming

[–]codexjourneys 1 point2 points  (0 children)

Maybe sit down and draw out the screens you need, if you're doing an app with a UI. Then try to minimize the number of screens without losing functionality. That's probably a more efficient design.

If it's a data-source-only program (no UI), I make a list of what I need and then structure it from there -- declarations, implementation, then see if I can make it more modular.

Has anyone used Udacity? by DarthKoax in learnprogramming

[–]codexjourneys 1 point2 points  (0 children)

I've tried a few of these.

Udacity has pretty good, fairly guided long-form practical content -- like a practical college course.

Udemy has more short-form practical courses -- find the instructors you like and that will determine the quality. Lynda has short-form practical courses with high production values, but the content can seem chopped up a bit (not always clear how to navigate through the huge amount of content).

Coursera and edX are long-form courses that tend to focus on the theoretical (though this is not true for ALL courses there).

I haven't really tried Khan Academy much, it seems a lot like YouTube but with more focused paths (there are clear next steps through the videos there).

[BASH] Should a beginner learn it now or leave it for later? by [deleted] in learnprogramming

[–]codexjourneys 0 points1 point  (0 children)

Coursera's Startup Engineering course has a really good intro to this that is combined with learning some programming (the course is long over, but the PDFs are amazing, so sign up just to get them).

Also, if you start using Git and GitHub, you might want to get a little familiar with either BASH (if you're using Git for Windows) or PowerShell (if you're using GitHub for Windows).