PDA

View Full Version : Programming General - What are you working on?



Sarukai
08-18-2015, 11:37 AM
Are you studying for a programming degree? Want to talk about a big project you want to talk about or just a simple question that you feel doesn't deserve a thread? Then this is a good place for you.

This thread is for talking about all things related to computer programming, whether it's software or websites or even the backends of game design, come tell us how you feel and what you're up to!

Why should I learn to program?

As technology grows and more and more people use in their everyday lives, learning how to program has never been more in demand and has not been easier, in fact some people write small programs to make their daily tasks easier. For example, it can be very time consuming to name and tag all your music, then create folders and put them in each folder by album. If you have 1000 albums worth of music, you are gonna be there for days. However, with a simple script, you could tell the computer to read the information on the music files and do the chore for you. By writing a script that wouldn't take more than 40 minutes to make, you could do a job that would take days, even months to do by hand.

By understanding how to write programs, you have the potential to make your program do anything you would ever want it to do. I'm not joking, you can play god with technology if you understand how to write instructions for it.

What do I need to get started?

What you essentially need is:

A computer.
A text editor.
Pencil and Paper (for planning)
Good problem solving skills and understanding of logic


Whilst that is what is needed, you will want other things depending on what you do:

A web browser. If you are writing something for the web, this is essential. It is also ideal for googling problems.
An Integrated Development Environment or IDE. Whilst a text editor may be enough, an IDE can provide you with a workspace that can check errors as you type, complete longer strings of code, navigate code, take control of versions and dependencies and will provide good debugging and testing tools for your programming language. Some IDEs even cater for more than one language (Such as Eclipse (https://eclipse.org/))
UML experience. If you are working on a medium-large scale project, it is recommended that you learn UML to allow yourself to plan out your program much better with less headaches. This is a good video (https://www.youtube.com/watch?v=OkC7HKtiZC0) to start with.
A grasp on object-orientated design. Refer to this (https://www.youtube.com/watch?v=lbXsrHGhBAU) for a quick crash course
Database Design Skills. This can depend on the program, but again essential if you are working with anything involving multiple accounts of data to store.


Can you recommend any resources?

Books

Languages

Personally, I like to use:


C# - Think java, but if Microsoft done it without it's weird design choices. Best used if you work with Windows all the time.
Python - Python in general is undeniably the most ideal beginner language there is. It's clean, concise and gets you used to pulling functions around. Python3 is for more innovative design, but Python2 is good for backwards compatibility.
Java - I find the most use out of this with Android development, but anything that requires Object Orientated Programming makes this an ideal go-to
Javascript - used with websites to handle scripting
Ruby - Hipster language.
SQL - Used for handling everything to do with the database.



Software

Websites

Youtubers

FAQs (Please read these before asking)


Q: Should I learn X? / Should I write this in X?

That depends on your previous experience, personal preferences and what exactly you are wanting to use the language for. If you plan on doing a project for your own learning, it doesn't hurt to try it. However, if you are wanting to learn it in order for further education or for professions, you could look into currently popular languages (http://www.inc.com/larry-kim/10-most-popular-programming-languages-today.html) to get an understanding of what is in demand or what is used in startup technologies. (http://codingvc.com/which-technologies-do-startups-use-an-exploration-of-angellist-data)


Why does language X take 50 lines to do this calculation when language Y can do it in one?

This is down to how the programming language is designed, not all programming languages are created equally and do not use the same syntax. Some languages don't have a function for it and require dirty workarounds.


Q: Does knowing dozens of programming languages make you a good programmer?

No. It really doesn't matter much to people how many you already know, the point of programming is to solve problems with your expertise though design and co-ordination. If you are pious, open a church. But its down to personal preference, what you're doing and what the client/enterprise wants. There is a nice blog post on this misconception here (http://www.chris-granger.com/2015/01/26/coding-is-not-the-new-literacy/).


Q: I can't install X, please help?

Wrong thread. This isn't tech support.

Socks the Fox
08-18-2015, 09:45 PM
I just wrapped up and made public my Chameleon plugin for Rainmeter:

http://imgur.com/VBK0aNb
http://imgur.com/gcZXQPW
http://imgur.com/KVnDqwF

https://software.socksthefox.net/chameleon/

Joybit
08-19-2015, 03:42 PM
Last thing I started was a basic counter using a Raspberry Pi A+, a couple 7-segment displays, and python. I want to make something reasonably simple that can be used for tracking life points/health/whatever in a card/board/tabletop game. Before that I made a derpy "Tumblr Simulator" using Family BASIC on the Famicom for a few laughs.

rodentia
08-20-2015, 04:51 AM
My current long term project is a computer demo to be ported to the Raspberry Pi2 Model B and Linux(Debian/Other yummy Linux, who cares). The graphics will be hand coded. A smaller project is my website which will soon be disclosed later on to be a nifty web app to showcase what little skill I possess.

- - - Updated - - -

That Tumblr Sim idea sounds adorable x3

Joybit
08-20-2015, 08:54 AM
That Tumblr Sim idea sounds adorable x3

It gives you an opportunity to "log in," make a text post, suddenly have 100+ notes, and then "#triggered" gets thrown around the screen 30 times before you get "banned." Nothing too fancy, but it gets the point across XD

rodentia
08-20-2015, 06:36 PM
It gives you an opportunity to "log in," make a text post, suddenly have 100+ notes, and then "#triggered" gets thrown around the screen 30 times before you get "banned." Nothing too fancy, but it gets the point across XD

Lol, do you have the sourcecode set up somewhere? xD

Joybit
08-20-2015, 06:45 PM
Lol, do you have the sourcecode set up somewhere? xD

I took pictures of the code on my phone in case the record to tape failed (in other words, I did it on real hardware and not an emulator XD), those pictures are here (https://imgur.com/a/XZ7xa). The first image is the BG graphic that is loaded with the view command (except the text, of course.) I'm going to revisit it later so I can compress the "Dialing/Loading" sequence to a subroutine, at which point I'll actually save the code in a text format as well.

maugryph
08-20-2015, 07:25 PM
I'm more of an artist then a programmer, that's why I rely on game engines instead of writing from scratch
I'm working on a very simple 2d shooter using Unity and C#. If I ever finish it I share a link

Previously I made a short 3d exploration game with GameGuru and Lua using my own art assets (3d models, art, music). It was for a game contest and using a certain engine was required. Gameguru was a nightmare to use due to it's limitations but I think I did OK for the time constriction, there is things I wish I would of done better.. http://contest.gamedevfort.com/submission/459#.VdZg2pdH5dA

rodentia
08-21-2015, 11:47 AM
I'm more of an artist then a programmer, that's why I rely on game engines instead of writing from scratch
I'm working on a very simple 2d shooter using Unity and C#. If I ever finish it I share a link

Previously I made a short 3d exploration game with GameGuru and Lua using my own art assets (3d models, art, music). It was for a game contest and using a certain engine was required. Gameguru was a nightmare to use due to it's limitations but I think I did OK for the time constriction, there is things I wish I would of done better.. http://contest.gamedevfort.com/submission/459#.VdZg2pdH5dA

Well, can't say I'm not impressed with you there. :'>

inpw
08-22-2015, 12:40 PM
Pencil and Paper (for planning)

People still write pseodocode?

Anywho, I'm busy with a infrastructure procurement system (No development started) enabling field technical staff to create reset and link computer objects on active directory without giving them access to active directory.

Boring and dull.

maugryph
08-22-2015, 10:23 PM
Well, can't say I'm not impressed with you there. :'>

Thank you :)

Onnes
08-23-2015, 01:39 AM
Unfortunately (or fortunately,) almost all of my effort in recent years has been on numerical simulations. I can say that my habit of first prototyping all my code in python has led to quite a bit of experience in numerically efficient python code -- if it's fast enough in python then I don't need to bother reimplementing it in C++. The entire python stack of numpy->scipy->matplotlib is amazing for scientific computing; it's basically like Matlab but with modern syntax and high level features.

For things not strictly physics-related, I recently started using Beautiful Soup to compile statistics from various websites. It wraps lxml (libxml2) and provides an incredibly convenient interface for scraping html.

Socks the Fox
08-23-2015, 07:19 AM
I want to start learning how to better use the various SSE instructions...

Sarukai
08-23-2015, 10:07 AM
People still write pseodocode?

Not necessarily for pseudo code, but its nice to have what you're doing written down somewhere so you don't forget things. I was thinking more for use cases. But whatever helps keep track of your work is still a good idea.

Socks the Fox
08-23-2015, 12:32 PM
I don't write pseudocode, per se, but I do often write down a bunch of comments giving a high level overview of what needs to be done, then fill in the code that does it between them. Helps keep me from forgetting to comment my code (usually).

rodentia
08-24-2015, 06:06 AM
People still write pseodocode?

Anywho, I'm busy with a infrastructure procurement system (No development started) enabling field technical staff to create reset and link computer objects on active directory without giving them access to active directory.

Boring and dull.

Still more exciting than my boring job. Doing nothing!

TeenageAngst
08-26-2015, 11:24 AM
This is a club I've been trying to join since I was 14 but every time I get to the gate and flash my nerd card I get thrown out by the bouncers. I really REALLY want to learn to code, damn near all my friends are in the programming or computer science profession, but it just doesn't seem to stick. The first time I tried was actually trying to use BASIC on a Commodore 64 and that... well it was painful. Then there were several unsuccessful attempts with some guides. Then last year I had a econometrics class that was essentially nothing but programming statistical simulations in a FORTRAN application :<

My friends tell me to try code academy, but they also suggest having a project I can work on as well to practice. I'm so new though that I can't even imagine a project I could do, let alone one I could grow into as I learned. Any suggestions for someone who's trying to get going?

Socks the Fox
08-26-2015, 12:08 PM
The first thing is you need to decide on something you want to accomplish. Anything at all. For example, writing a program to keep track of purchases.

Next, you need to break that down into high level steps that need to be taken. In this example, that would be: Load and display a list of purchases from a file, let user input new purchases, save new purchases back to file. Be ready to add things to this list, as I can guarantee there are going to be things that are forgotten about.

After that, you need to go look up whatever steps you don't already know how to do. Need to load the list? Google "<language> read text from file". Find a decent example that shows what you're after, and modify it to fit what you really want it to do. That's the key: by modifying it, you can see how the code handles the changes, and better understand what modifications you need to get everything working together.

Once you've gotten the program to a decent working state, break it. And you will break it. You know how you set that part of the code to handle what the purchase's price was? Put a letter in there. What happens when the name of the purchase is "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaa[repeat for a long time...]"? That's a fun one to handle. Figure out how to fix these bugs.

Alright, now the last step: Think of some improvement to the program. Wouldn't it be nice to be able to track how much was spent on taxes? Or to be able to say this purchase was necessary and that one was for fun? Then go back and add these to the program.

One nice thing about computer languages is for most of them there are a few key concepts that are shared across most of them: loops, conditional statements, functions, variables, and so on. Once you're comfy with one, you can more easily pick up another.

TeenageAngst
08-26-2015, 12:20 PM
TBH that sounds like something that would be handled better by Excel. That's part of the problem, really. Most things I think of can usually be handled better by statistical software packages or Excel.

Socks the Fox
08-26-2015, 12:34 PM
Who cares? You're doing it to learn, and the best way to learn is to write a program that actually does something. It doesn't matter that that something can be done by existing software.

My Weasyl upload program can basically be replaced by an existing web browser, but I still went through the trouble of writing it to learn how to handle everything needed to do network communication.

rodentia
08-28-2015, 08:17 PM
And the best programmers are those who learn how something is made hands-on. Once that's been done and you understand what you're doing, you would gain that knowledge and then attempt to improve on what's been done based on other findings.

Onnes
08-28-2015, 09:02 PM
TBH that sounds like something that would be handled better by Excel. That's part of the problem, really. Most things I think of can usually be handled better by statistical software packages or Excel.

See, saying something would be better handled by Excel is just evidence that you need more experience with programming. (Moving away from Excel also drastically reduces the chance that your collaborators will start poisoning your coffee.) If you can't yet imagine yourself tackling a real project then focus on tutorials. I think I got most of my foundational experience just working through various courses on MIT's OpenCourseWare. You do need some level of background before you can really plan out a larger project -- if you aren't comfortable with what you're doing then you probably won't know where to even begin.

TeenageAngst
08-29-2015, 12:48 AM
I actually really like Excel. I've found people who don't like Excel tend to be people who either don't know enough about computers to make it work for them or people who don't hang around with enough people who don't know much about computers to see value in making a user-friendly modifiable auto-fill spreadsheet. My econometrics software for instance ran like greased lightning even under large workloads but trying to collaborate using FORTRAN code was like bashing our heads against a wall, especially since we had an Excel add on that did the same thing just slower.

I guess that's part of my problem is I don't have an issue I'm actively trying to surmount.

Onnes
08-29-2015, 01:09 AM
I actually really like Excel. I've found people who don't like Excel tend to be people who either don't know enough about computers to make it work for them or people who don't hang around with enough people who don't know much about computers to see value in making a user-friendly modifiable auto-fill spreadsheet. My econometrics software for instance ran like greased lightning even under large workloads but trying to collaborate using FORTRAN code was like bashing our heads against a wall, especially since we had an Excel add on that did the same thing just slower.

Excel has two major issues. First, it has awful compatibility. It's a complete pain to get an Excel program running properly without having the appropriate Excel version. Not only does this tend to lock out users on OSX or Linux, but it also presents difficulties for Windows users that are either ahead or behind in the Office release cycle. The other issue is with error checking. Excel is a spreadsheet editor. If you're using it for more sophisticated programs then it becomes increasingly difficult to walk through the flow of control and deal with bugs. It's more or less designed to hide the details of its calculations; this is fine for simple, built-in operations but dangerous for more advanced functions.



I guess that's part of my problem is I don't have an issue I'm actively trying to surmount.
Then the obvious question is: Why do you want to expand your knowledge of programming? Learning anything is difficult without sufficient motivation.

TeenageAngst
08-29-2015, 02:13 AM
For funsies, the same reason I learn anything that isn't mandated.