M
M
Mist82014-08-22 02:58:59
MySQL
Mist8, 2014-08-22 02:58:59

Programming language for a specific task + from scratch + good base?

Initial conditions:
25 years old
Good English (I read manuals easily / perceive by ear)
Weak matan (there was no motivation / need, if I have - I can improve)
Poor knowledge of statistical methods of analysis (from the university - psychology faculty)
7 years ago CCM in chess :)
Knowledge of html
About zero knowledge of programming languages
​​Free time in the evenings, weekends
Motivation:
A few simple projects
For "general education/development)
For work (project manager - a bunch of different tasks)*
Tasks:
1) Write a program for yourself. The program is a simulator on n-back problems There are many ready-made options, but I need my own, with blackjack and courtesans.
Namely, the program should:
Min:
run on a PC
Have the standard functionality of n-back simulators
The ability to use as stimuli (picture, sound, word, symbol) - own (I did not find this in existing versions), it is easy to change them
Max:
+ version for personal use on android & iOS
+ web version
+ publish the program in the android market / iOS
This is the main task, the main source of motivation. The resource of motivation is limited, it is better to do it with crutches, at a minimum. The faster and easier, the better.
2) Lay a good foundation for understanding programming in general.
It somewhat contradicts the main task.
This is not the main, but significant task. Ideally, using the motivation for task 1, I want to get involved in programming.
I do not plan to make programming my profession yet, but I consider the skill of programming now equivalent to the skill of writing in the ~17th century. A very useful skill (and increasingly necessary) for personal use.
3) Various tasks in the field of project management. It would be nice to understand the basics in order to understand web programmers, 1C programmers. Perhaps programmers of metalworking machines (not sure if it will be needed or not). Close to problem number 2.
4) A distant goal (for which the base is useful) is to learn simple controller programming.
This goal can be sacrificed.
5) Working with the database and processing information in general.
Tasks such as parsing, creating a database (for example, an online store database and uploading it directly to the CMS database).
In principle, I now have enough knowledge of html to set up a ready-made parser. To work with the store database using a special program too.
But in general, a better understanding of SQL and database principles in general would be useful.
I'm not sure I'll ever need to write my own parser. But to write a plugin for the parser (datacol) - there was already a need.
These are the goals. The main first, I don’t want to spray (may not have enough motivation). It is highly desirable to write a functional program in a month or two, if it is realistic.
What language do you recommend?
In terms of: complexity / development time / good base for subsequent development?
How much time and effort in what language can writing a program from the first goal with min functionality take?
Throw good manuals to the language (rus / eng). I understand that there are a lot of manuals, but which one is good and which one is not, I can’t figure it out at this stage.

Answer the question

In order to leave comments, you need to log in

6 answer(s)
D
Deerenaros, 2014-08-22
@Mist8

In fact, you can choose JS or Python. In the context of Python, the first task is solved in no time, here are a couple of tips that can help in the future (naturally, in the context of getting a quick result):
+ forget classes and beautiful code, write as quickly as possible, the final version will be vile terrible, but the result is not long in coming
+ use the power of Python - generators, lists (and slices), lambdas and lots and lots of sugar
+ start with pygame: there will be no beautiful menus out of the box, but, more importantly, it will be quite convenient in terms of the Python API, and drawing and sound.
By the way, Python can be compiled to JS relatively easily, and there is also an on-the-fly JS parser. So making a web version will not be a huge deal.
Okay, as far as resources, codeacademy , coursera are very good options. Well, the official documentation is also one of the best (by language).
The only difficulty is to choose a two or three. I recommend the three - with libs, everything is mostly fine, and the difference is not so huge (basically, print became a real function when it was goodness knows what). And it's funny - python 2.x is very easily converted to python 3.x by including a couple of libs and a couple of imports from __future__.
Now about how this can be extrapolated to other tasks. Matan is not necessary at all and is easily lifted on demand. It would not be bad to quickly raise technical English (in order to understand the terms), although there should not be any problems at all - technical IT-Russian itself is 80% English. Programming controllers in Python is difficult, but possible . Understanding web and 1C programmers is not difficult, since they are mostly not programmers.
Regarding JS, I can say that it is both simple and complex at the same time. He thought it was as simple as possible, and partly it turned out that way. However, he turned out to be a freak even so. In this videoshown very interesting. And there are many more such subtle moments. Although in fact, he is really very interesting and knows a lot. Yes, and development is in full swing, and browsers are hastily implementing innovations.

_
_ _, 2014-08-22
@AMar4enko

Although it sounds creepy, you most likely need Java .
Suitable for learning from scratch, then you can train in the canonical OOP, by experience you will understand all the must-have patterns.
You can write a desktop application, a web application server, an android application.
Also, for a web application, you will need some knowledge of JavaScript (in no way correlates with Java), but as far as I understand, this is the "maximum" program for you.
Another option is JavaScript .
Node.js web app, HTML5 mobile app with Apache Cordova, Node Webkit desktop app. But I don’t recommend getting into it without having basic programming knowledge - the lack of strong typing, OOP as such, a lot of hidden behavior, closures at every step give too many options for incorrect implementation of sometimes quite obvious things.
One way or another, the days when the level of a developer was determined by the degree of knowledge of the language are gone. Today, the developer's task is to choose the right toolkit as competently as possible and, using it, solve the problem as quickly and efficiently as possible. And here you already need not only to know the language, but to know what libraries exist for your PL, their strengths and weaknesses.
Outcome:get rid of the illusion that you can jump on this train in half a year of work in the evenings and on weekends. It will be a long and painstaking job.

G
gleb_kudr, 2014-08-22
@gleb_kudr

It is important for you not just to learn a language, but to learn it together with a specific ecosystem.
Therefore, the options are:
1. Java + android
2. Obj-c / Swift + iOS
3. C # + Win / Win Phone
4. JS + web
As a beginner, it was enough for me to just learn C # based on the usual Windows platform (WPF). Since there is a convenient development environment and everything is clear. After that, he already gets into any technology quickly enough.
PS Starting with books is harmful. It is necessary to start with programming, and read books in the process.

V
vsuhachev, 2014-08-22
@vsuhachev

I think you are setting too ambitious goals. Controller programming, 1C, Web, GUI for iOS, Android, PC (Windows? Linux? MacOS?) are vast areas with their own specifics.
It is more rational, in my opinion, not to look for a "silver bullet" for all your desires, but to take a minimal task and implement it in one of the modern mainstream programming languages. In the process, you will already understand whether you are ready for the maximum tasks and where you need to move.
Python, Ruby, JS/CoffeeScript are good candidates.
Java, C# - in principle, also
PHP - I categorically do not recommend it, but it is consistently chosen by beginners because it is conceptually simple and popular.
Well, from experience - treat the choice of a programming language as a choice of a tool for a task, and not as the only choice for life. It is considered good form for programmers to know 2-3 languages, and superficially a dozen or two.

Q
QuakeMan, 2014-08-22
@QuakeMan

if I started to get acquainted with programming again, then perhaps I started with this book
portablesoft.net/uploads/fotos/5351c2dba6984.jpg
gives an idea of ​​​​what a computer is in general, and the opportunity to test myself as a programmer,
what are, for example, pointers in c ++ to I couldn’t understand it,
but there are no languages ​​\u200b\u200bin demand on the market in it
and if so, what can be improved?

M
Mist8, 2015-03-10
@Mist8

If anyone is interested, I chose Python and am satisfied.
In general, during this time, I realized that in fact the question "which language to choose" is not as important as I initially thought. I am sure that nothing would have changed significantly if I had chosen a different interpreted language. For example JS or Ruby.
In reality, the syntax of the language and the basic concepts (in order to generally understand what programming is and what it is eaten with) can be obtained in a couple of weeks or a month. Online courses like Code Academy are great.
The fact is that the initial stage is easy and interesting to pass in almost any popular language. The main difficulties begin later when you try to do something on your own (rather than repeating with some variations what is well described in the courses).And at this stage, it is not so important which language you have chosen - in any case, it will be difficult and just an abyss of new questions will appear.
From the category of "how do databases work?", "how to set up a module/plugin", "how does a site work (templates, database, cookies, sessions, server...?", thousands of them.
ICSH, these questions do not depend much on the chosen programming language But if you understand them, then you can work with them in any language (having spent a day / week / month studying the syntax and features of another language)
By the way, I recommend a good article: Why is it so damn hard to learn to program?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question