[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y ] [Home]
4chanarchives logo
Programming Portfolio
Images are sometimes not shown due to bandwidth/network limitations. Refreshing the page usually helps.

You are currently reading a thread in /sci/ - Science & Math

Thread replies: 16
Thread images: 2
So I'm an applied math major and people here seem to suggest to build up a programming portfolio to increase my job prospects.

But what the fuck do you guys actually make for in a portfolio? The only programming I've learned is how to use Python and MATLAB for computations, modelling and solving differential equations. I don't have a clue how to actually develop an application. I don't have any good ideas on what to develop. Can someone help me?
>>
>>8208583
not really! a portfolio implies you make interesting small-ish projects, and that means you need to konw what to do. making small projects and posting them on github is a good idea
>>
>>8208583

If you want to get good at programming you need to stop with matlab at once and start writing some actual code.

If you want to remain in the domain of math start looking at for instance a generalized genetic algorithm solver which uses abstractions that make it agnostic to genetic representation, fitness evaluation and reproduction strategy. It's a tall order, but it forces you to think a lot about what the correct abstractions are, and how to generalize
>>
>>8208594
That's fucking interesting man, what language do you suggest I learn? Right now I'm trying out Haskell for shits 'n giggles and I kinda like it.

And why does everyone hate Matlab? It's faster than Python.
>>
>>8208583
well, not sure, but here goes.

1. find a piece of software, something rather small, that you think is shit or lacks some kind of feature. write your own version of it or fork it
2. surf a bit around the web looking for raspberry pi/beaglebone black/intel edison/arduino/whatever projects and see if something tickles your fancy. for example, there's a ton of gardening computer projects out there; maybe you want to do one which has better algorithms for controlling water/light/whatever. i don't know what your other hobbies are - find something related.
3. the classical programming challenges are always something to enjoy, even if they're pointless. for example, a simple ray tracer is something i've been meaning to do for a while. thinking about how to implement a database is another one.

very generally, you might want to just give yourself a day or two to just explore ideas, google around, think about how you would implement some of the shit around you. make a list of the things, put a few pros and cons, then by the end of day two (or so, you can make it a week if you feel anxious) you pick the one you like best and just start. depending on complexity, you might want to start with drawing a couple boxes with relationships to visualize for yourself how you're going to compartmentalize functionality. if you feel like your drawing sucks, not a shame to start over - you might want to use some kind of software, e.g. yEd, the second time around so you can play with it a bit more freely. then just start writing code; there's no real philosophy on how to start, some people start implementing small parts of functionality to test, others start with the central "kernel" where functionality is bundled and provided, most people switch between those two and just go whichever way they feel is right. also: do not plan to throw the first draft of code away, but don't resist doing it too much either.

have fun!
>>
Fuck wasting your time "developing a portfolio"

Just get decent grades and do internships
>>
>>8208599
language doesn't really matter. you can develop applications in MATLAB as well, don't let these niggaz fool you. CS people don't like matlab particularly much because the library is a bit disorganized and doesn't follow a lot of the classical rules for clean interfaces. it suffers from the windows problem a bit: made by a company, but different departments which apparently did not feel the need to conform to an overall standard on how to do things. also not open source.

python is good because there's a library for literally anything. it's really, really easy to glue together working shit in python in no time. also, when it comes to applications, you can say goodbye to the question of what's faster, at least for now. the rule here is: don't guess. don't optimize until you've measured.

haskell is also fine, nice language and growing number of projects and thus, available code. the community is a bit annoying at times, but it's not really that bad.

the obvious ones are C and C++. i personally like C, but C++ is more modern and has a lot to offer if you're not an asshole. it doesn't hurt to know C beforehand, though.

in general, i don't think you should concern yourself with what language to use for now. you know python, i suggest you start with that (or haskell, depending on how confident you feel). if you really need something your language of choice doesn't have, you still have plenty of time to learn something else.
>>
>>8208617
Alright, I'll take a look at it. I'm really liking Haskell so I think I'll also try some stuff in that. Also, how many lines of codes are these projects usually?

Most programs I write in Matlab are around 100-200 lines of code, but I hear true programs have 60k lines or so. What gives?
>>
I only knew rudimentary Python and it took me only 2 weeks to get to speed with PyQt and understand how to make user interfaces that start and control computations and it's part of my paid job now.
I don't think network stuff is much much harder either.

https://en.wikipedia.org/wiki/List_of_language_bindings_for_Qt_4
https://en.wikipedia.org/wiki/List_of_language_bindings_for_GTK%2B
>>
>>8208599

Haskell is a pretty good language for that actually. With partial application, typeclasses and composition you have a pretty good set of tools for abstracting.
>>
>>8208583
>The only programming I've learned is how to use Python and MATLAB for computations, modelling and solving differential equations. I don't have a clue how to actually develop an application

Learn data structures and algorithms and practice coding a few of them up.
Learn C++, networking and system programming.
Learn some computer architecture, OS design, and compilers to know what's going on in the background.
Pick up databases, parallel and distributed programming along the way.
>>
>>8208637
Don't forget applicatives, monads, profunctors and Kan extensions.
>>
File: julia.png (32 KB, 400x400) Image search: [Google]
julia.png
32 KB, 400x400
>>8208599
>And why does everyone hate Matlab?
It's annoying in many respects, like library functions taking strings for keyword arguments (like a glorified shell scripts), structures added as an afterthought, nothing resembling functional programming or OO, and basically being held together by shitloads of libraries and money flow from Mathworks.

Also, Julia exists; it's more or less Lisp (well, Dylan perhaps), with generic functions (and there are libraries that do similar things with generic functions to what Haskell does with type classes; see Interact.jl for example) and macros, but looking like Matlab and not scaring people away with parentheses.
>>
>>8208583

Make a portfolio if you want to get a programming job. Otherwise be prepared to spend a good amount of time job hunting.

Make a simple project (but not too simple). Something that you can work on from time to time that you aren't likely to lose interest in. It can even be a clone of something that already exists (the main reason people make clones is to gain programming experience). Do not just work on shit like Project Euler problems (I saw some guy on /g/ get turned down for a job because his github page was just full of university projects and Project Euler problems, they told him to make a real project and apply again in a year).

While on that topic, it also helps to make a github page and learn git. Your github profile page will show a green square for every day you submit code. If you're an HR person at a company tasked with working through two hundred applications then anyone who has a github page with lots of green squares is likely to stand out (HR people don't know shit about code but you have to deal with them if you want to even get considered).

What people care about more when they look at your portfolio is that you actually program in your daily life. Many people graduate from their degrees with good grades by just relying on google and stack exchange. Said people have very little actual programming experience and are considered bad hires.
>>
>>8208583
>I don't have a clue how to actually develop an application.

then learn how to do that.
>>
>>8208627
>true programs have 60k lines
"lines of code" is a poor way to represent a program (1 line of code in Python could be equivalent to 20 lines of code in Java, for example).

Regardless, you shouldn't be expecting to write thousands of lines of code for some side projects to put on your portfolio (unless you get extremely enthusiastic about a project), so "lines of codes" in the hundreds should suffice.
Thread replies: 16
Thread images: 2

banner
banner
[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y] [Home]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
If a post contains personal/copyrighted/illegal content you can contact me at [email protected] with that post and thread number and it will be removed as soon as possible.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com, send takedown notices to them.
This is a 4chan archive - all of the content originated from them. If you need IP information for a Poster - you need to contact them. This website shows only archived content.