How long to become a proficient programmer/Can I get hired with a math degree?

Anything to do with the traditional world of get a degree, get a job as well as its alternatives
BRUTE
Posts: 3797
Joined: Sat Dec 26, 2015 5:20 pm

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by BRUTE »

jacob wrote:Assembly language
waste of time unless working in hardware, in brute's opinion. skills don't transfer well through layers of programming languages.
jacob wrote:All the "kids" worked from a framework of "there's a library for that" whereas I worked from a framework of "let's construct this from scratch"
depends a lot on the domain. in physics/math there might not be a suitable library for doing a specific thing. but in the day to day plumbing work of a software developer, the same things are being done over and over again. how often would jacob re-implement a regex that checks for valid ipv4 or ipv6, or parses the query params from a URL? this might be the difference between an "inventor/science" programmer and a "plumbing" programmer. as a plumber, part of the skillset is to know the toolset well and re-use code efficiently.
jacob wrote:If you read a book from the 1850s or 1940s, it's going to be weird and hard to read ... because it's not in the style of how things are currently done.
has jacob read books from those periods? brute actually likes many of those books a lot, and finds some are written way clearer and better than books now. less fluff, more structure and thought put into it, no bullshit anecdotes about how one time a little old lady totally used whatever the author's proposing to great success.
jacob wrote:Form is more important than function insofar you have to work with others or convince them that your code is good. Otherwise, you're going to be that weird guru guy they keep in the basement for hard problems.
very true. also, VIM >> emacs.

ducknalddon
Posts: 249
Joined: Fri May 20, 2016 5:55 am

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by ducknalddon »

BRUTE wrote:very true. also, VIM >> emacs.
Careful, this could get worse than the climate thread :D

Quadalupe
Posts: 268
Joined: Fri Jan 23, 2015 4:56 am
Location: the Netherlands

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by Quadalupe »

If you want to have some fun and also learn some assembly language, check out TIS-100. It is a programming tutorial disguised as a game, and you have to solve simple puzzles using an assembly language. It can be very addicting to try to minimize the number of cpu cycles needed to solve the puzzle!

BRUTE
Posts: 3797
Joined: Sat Dec 26, 2015 5:20 pm

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by BRUTE »

ducknalddon wrote:
BRUTE wrote:very true. also, VIM >> emacs.
Careful, this could get worse than the climate thread :D
no, on this one, the science is settled.

luxagraf
Posts: 215
Joined: Tue Nov 26, 2013 4:32 pm
Contact:

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by luxagraf »

BRUTE wrote:
ducknalddon wrote:
BRUTE wrote:very true. also, VIM >> emacs.
Careful, this could get worse than the climate thread :D
no, on this one, the science is settled.
Why are you comparing an operating system and the world's best text editor? Apples and oranges.

I would second everything brute said earlier in this thread, particularly w/r/t assembly/firmware stuff. I guess there is money there, but all those skills do not, in my experience of hiring programmers, translate well to other domains. As for using libraries vs writing your own, there may be times when writing your own lib is necessary, but I'd argue those times are far less common than the times you should use what others have already written, tested and debugged for you.

BRUTE
Posts: 3797
Joined: Sat Dec 26, 2015 5:20 pm

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by BRUTE »

luxagraf wrote:Why are you comparing an operating system and the world's best text editor?
mic drop

ducknalddon
Posts: 249
Joined: Fri May 20, 2016 5:55 am

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by ducknalddon »

luxagraf wrote:As for using libraries vs writing your own, there may be times when writing your own lib is necessary, but I'd argue those times are far less common than the times you should use what others have already written, tested and debugged for you.
I don't know, it may be the niche I work in but I spend quite a lot of time at the bottom of the stack implementing some fundamental types.

James_0011
Posts: 392
Joined: Wed Nov 09, 2016 12:00 am

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by James_0011 »

On a related note, how easy is it to get jobs working remotely as a developer? Any experiences?

FBeyer
Posts: 1069
Joined: Tue Oct 27, 2015 3:25 am

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by FBeyer »

The one thing about programming that gets me is that I don't know how to get feedback on the quality of my code when I don't work with more experienced programmers to tell me.

I'm from STEM and I've 'worked' with FORTRAN, python, bash, Julia, Matlab, R, and C, but really my exposure is so limited that I know that I'm not really expressive is those languages, even though I worked for almost a year and a half with FORTRAN [1].

I know that I should git commit like crazy and fix only one problem per commit. That I'm working on.
Documenting code and readability has always been important to me, but I don't know what 'industry quality' looks like. I know what scientist code looks like and it works... but only just. I DO NOT want to be associated with scientist programming, but phrasing my goal in terms of negatives is not as constructive as phrasing it in terms of positives, but I don't know what the end result should look like...

So: Where does one go to gauge how well one codes and especially how good one's workflow is when you're self-taught?



[1] The nature of the project meant that I wasn't developing a whole lot of new things, rather than adding MPI parallellization for existing crazy-ugly code that did very complex quantum mechanical calculations, surviving was more at the front of my mind that elegant implementation...

James_0011
Posts: 392
Joined: Wed Nov 09, 2016 12:00 am

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by James_0011 »

Have you considered contributing to open source projects like Firefox? My understanding is that your code has to be reviewed to get approved.

luxagraf
Posts: 215
Joined: Tue Nov 26, 2013 4:32 pm
Contact:

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by luxagraf »

ducknalddon wrote:
luxagraf wrote:As for using libraries vs writing your own, there may be times when writing your own lib is necessary, but I'd argue those times are far less common than the times you should use what others have already written, tested and debugged for you.
I don't know, it may be the niche I work in but I spend quite a lot of time at the bottom of the stack implementing some fundamental types.
yeah that squares with my experience as well, the closer you get to the bare metal the fewer people working and so the fewer existing libraries there are. Probably also depends somewhat on the language, some make reusing existing libraries easier than others.
James_0011 wrote:On a related note, how easy is it to get jobs working remotely as a developer? Any experiences?
You mean as opposed to having to show up in an office? I think they'll usually end up being entirely different things.

I've never interviewed for an in-person programming job, but that's because I've never wanted one/there aren't any near where I live. I like to approach the whole thing as "I am a freelance programmer" and I have clients who need help solving some problem. Sometimes that problem takes a month, sometimes two years. If you approach it like that I would say that it's pretty easy to get remote-only work provided you have the skills/experience and a way to market yourself. I started by working as the development part of web/ad agency. As I started working with some bigger clients (brand names people know) other people started to find me and reach out. Now I'm about 50% my own clients (which tend to be lower-level programming, database and sysadmin work) and 50% in partnership with an agency (higher level programming, scripting languages like python, etc). [Edit: I should probably note that it has taken about 8 years to get this point, so not really an over night thing, but certainly possible. And I gave up on programming entirely for about a year and half in there, so if you actually stick with it you can probably do it in half the time I did.]

On the other hand if you want to work on a larger project as part of a big team those sorts of jobs tend to want you to show up in-house, though not always. I interviewed for a position at Mozilla that would have been remote, alas didn't get it, but then the product since fizzled so probably just as well.

In my experience it's not necessarily easier or harder to work remotely just different types of work out there.

Scott 2
Posts: 2824
Joined: Sun Feb 12, 2012 10:34 pm

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by Scott 2 »

Remote work - I've yet to be on a dev team that wouldn't allow at least a few days a month. That's OK for someone new to the field.

My current team is remote 80% of the time. Our youngest team member is about 30, doing QA, and was just hired having around 8 years experience. We almost exclusively hire mid to senior level. A new dev needs immersion into the field, which includes working together in person, a lot. Starting fully remote would really short change your and your company. I think it's also likely to short change your starting salary.

IMO getting better as a dev will happen quickest and most effectively by being part of a good team. If that's important to you, either you have to leave our build it. Filtering through everything online to find the quality advice is tough. There's also an aspect of pragmatism that is critical to being a good developer. Often the best choice is to get in, tack on the tiny update, and leave the working rats nest alone. Other times, it is best to throw away and start from scratch. I don't know how you learn that without working on a quality team.

My team has one on one peer review, full team code review, sends every team member to a full week conference annually, provides the enterprise edition of visual studio, will pay for books, will pay for plural sight courses, and requires team members to peer review their architecture ahead of implementation. Those are things you might look for. A group that has successfully implemented continuous integration is also a good indicator of experience.

Plural sight is popular for learning new ideas. People like to talk about having a git repository and working open source, but most of the devs I know are too busy doing paying work to screw around with that. If the peer quality is low (idealists or people not good enough to get paid), it might not be worth the opportunity cost.

I don't think you have to be a good dev, or even employed, to get paid, btw. Contract work is out there. You can build an app. You can build a website. Work is not something blessed upon you by the employment gods.

User avatar
Sclass
Posts: 2791
Joined: Tue Jul 10, 2012 5:15 pm
Location: Orange County, CA

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Post by Sclass »

FBeyer wrote:The one thing about programming that gets me is that I don't know how to get feedback on the quality of my code when I don't work with more experienced programmers to tell me.
Documenting code and readability has always been important to me, but I don't know what 'industry quality' looks like. I know what scientist code looks like and it works... but only just.
So: Where does one go to gauge how well one codes and especially how good one's workflow is when you're self-taught?...
Lotsa interesting points in your post. I was once referred to as a "scientific programmer" early in my career. It was kind of an insulting title. :D

A great self taught software guy I worked with (he was EE hardware by schooling) recommended that anyone who was serious about becoming a better programmer should study the Linux source. Then contribute. I never did but I think it was a good tip. In 1998...may not be current.

He saw me in the class of (embedded systems) programmers who could make the machine work reliably but in a crude way. This kind of happens when you learn by hacking if you don't study good code or get mentored. Just compiling and moving forward can do this. This thread is really bringing it out.

Learning assembly helped me understand arithmetic better. Didn't exactly help my coding. I guess I'd worry about compiler optimization where my non assembly friends would just trust the machine. Funny how fifth grade math is a bunch of blind methodical rules that really come to life when you have to understand how a machine does it. This is what assembly did for me. Kind of the backwards direction for the OP ;) .

I can recall some silly things a guy who didn't understand processor architecture coded that made inefficient moves in an arithmetic logic unit on one job. He was a mathematician incidentally. He demanded more and more clock rate and bus width till I dissected his code line by line in a department meeting and painstakingly illustrated all his silly shifts in and out of the core. Funny, he still works at HP. I lost my job shortly after that. That may have been a career ender. :lol: one of my old friends says that guy still uses what he learned in that public ass kicking to look smart in front of management. They call it Sclass's ghost when this geek gets up there talking about designing for speed.

Remote work? I guess it depends on what you're doing. The guys I knew who could do this were really badass developers with years of experience. Part of that was the ability to work independently, some of it trust, and some of it was their ability to demand their terms based on our need for their expertise.

Post Reply