G
G
globuser2014-12-21 19:25:47
Programming
globuser, 2014-12-21 19:25:47

How to adapt-retrain from a mathematician to a programmer?

How to retrain, adapt, re-educate, learn, transform into a programmer from a specialist-mathematician-theorist? How can a mathematician shape the mindset of a programmer, while retaining all the mathematical baggage?

Answer the question

In order to leave comments, you need to log in

8 answer(s)
F
FoxInSox, 2014-12-21
@FoxInSox

Sit down at the computer and start programming. In n hours you will become a programmer, where n is from zero to infinity.

A
asd111, 2014-12-22
@asd111

I think you are on the road to Yandex.
Apply to the School of Data Analysis or the Computer Science Center. There you will learn how to program and solve machine learning problems. I think it will be very interesting for you there, so if there is an opportunity, then do it - this is the best way to learn how to program and immediately find a cool job for a mathematician-programmer.
Links:
School of Data Analysis shad.yandex.ru
Computer Science Center compscicenter.ru

A
Alexander Belov, 2014-12-21
@IPRIT

View these topics:
Long arithmetic
Dynamic programming
Graph and number theory (cryptography)
Recursion, enumeration
Sorting and sequences
Combinatorics
Simple mathematics
Geometry
Integer arithmetic
Mathematical modeling
Greedy algorithm
Data structures Two-
dimensional arrays

Read about them, analyze each.
acmp.ru acm.timus.ru
Codeforces
This
Check it out here: Olympiad programming for beginners The set of programming languages ​​in each system is different. Here are some of them: very useful resources (checking systems), which include very interesting and difficult problems, just designed for programming olympiads.
A set of japs ​​for thymus
For acmp.ru
But first, read and analyze these resources / books about algorithms:
algolist.manual.ru
Kormen T., Leyzerson Ch., Rivest R., Stein K. - Alg ...
And of course, Mathematics is a very good plus. A programmer without mathematics will not go far, but will sculpt sites.
And the last thing to motivate you. Nikolai Durov (brother of the same Pavel), Andrey Lopatin, Anton Maydell and others who created VK and Telegram became who they are now thanks to the Olympiad programming.

A
Armenian Radio, 2014-12-21
@gbg

You can start by writing your own implementations of classical numerical methods.
In addition, combinatorics can throw interesting puzzles: finding all possible combinations, combinations, permutations, and so on.
The craft of a programmer can only be learned through practice.
A mathematician will enjoy using functional languages ​​like LISP and Haskell, but there is little market demand for them these days.
In total, you need to answer the question - what area of ​​​​programming to climb into?

A
Anatoly Scherbakov, 2014-12-21
@Altaisoft

First of all, I envy you, because I know much less mathematics than I would like. However, I dare to express the ideas that have developed so far about how programming and mathematics are related.
It seems that, first of all, it is worth deciding what you need programming for. Do you want to program for your professional mathematical activity? Mathematical modeling? Mathphysics? Iron?
Let's assume that you have decided on this - and then there is a question of choosing a tool. For example:
Mathematica , if you are not familiar with it yet. Multi-paradigm environment for programming anything. Some of the crazyness of Stephen Wolfram seems to be even good for her.
General purpose functional programming languagesinclude the already mentioned Haskell, LISP, Scheme, Clojure. I would suggest Scala, which I am doing myself now. You will probably have an easy time with the lambda calculus and the category theory on which it all works. The basis is the JVM, this has both weaknesses and strengths; the advantage is that you can write both web applications, both desktop and mobile.
C++ is a bit of a mess; I mention it because there are books by Alexander Stepanov - "Elements of Programming" and more recently published "From Mathematics to Generic Programming", which describe programming from the point of view of abstract algebra. Based on a language based on C++. I don't think we should start with that, books are difficult; but maybe you will be interested in just flipping through or making a note for the future.
Functionalists hate mutability (mutability) of values. Their tools are theories of types, sets, categories, lambda calculus. Stepanov, on the other hand, claims that a real machine has a memory, the cells of which are changeable by definition, and therefore the functional workers are in the clouds and break away from the mortal earth. Those in response call him an old fart, stuck in the distant past. In short, life goes on.
It seems to me that both of them are just approaching one common problem from different angles - the mathematization of programming, which is very acute. The information technology industry needs people who understand mathematics to make programming better than it is now.
Some more points that you may be interested in.
Concrete mathematicsby Knuth, Graham, Patashnik is a textbook on mathematical methods that the authors found useful in software development.
Mention of the Art of ProgrammingKnuth has already become mandatory in every topic about learning to program. However, a living person who does not live on a desert island is unlikely to be able to work through this book in its entirety. Rather, you can use it as a reference and as a source of inspiration.

M
Mrrl, 2014-12-25
@Mrl

I'm afraid it will be very difficult. All these unit tests, adherence to programming styles, documentation, version support systems will make you forget that you are a mathematician after a while. Now I try to stay away from them: I got to a place where a mathematician-algorithmist is needed, and although I write a lot of code, I can’t consider myself a programmer. This is a dangerous position: if you have to change jobs, it will be difficult to find something like that.
So in order to retrain as a programmer, you need to learn modern programming from scratch. And in order to learn how to invent and implement algorithms - take a book on algorithms, and disassemble and write them all in a row. After some time, come up with a problem with a near-mathematical formulation, try to solve it (example: build all non-equivalent triangulations of manifolds - with and without edge, containing a given number of triangles). Then another task, and so on.

E
Elizaveta Borisova, 2014-12-21
@Elizaveta

1. Get used to the idea that there is a long way from an abstract solution to a really working code (this is the work of a developer).
2. You will be annoyed by technical problems / debugging at first, because of the prevailing mindset. You have to be mentally prepared and overcome with an effort of will.
3. Study the technologies themselves. Mathematical preparation will help you quickly grasp the theory.
4. Start writing not only algorithmic code, choose a direction.

A
Ali Aliyev, 2014-12-21
@ali_aliev

Well, finally, we waited for a question of the opposite nature :) If you are talking about yourself, then you just need practice if you have knowledge of fundamental things, such as algorithms and data structures. At the same time, if you are interested in using mathematics to the fullest (computer algebra for example), try Sage, Python.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question