С чего начать... и вообще, стоит ли начинать?

  • Автор темы RM2010
  • Дата начала
R

RM2010

#1
Добрый день, господа программисты!
Вкратце о себе, 26 лет, голова вроде светлая, отлично рисую в 3д максе и фотошопе, в.о. экономика, но чем именно в жизни хочу профессиональна заниматься еще не решил. Быть может программированием?

Но пока что программирование для меня еще достаточно широкое и абстрактное понятие. Расскажите, пожалуйста, на какие, так сказать, виды и подвиды оно разделяется? Какие из этих видов более, а какие менее перспективны, востребованы? На какие доходы может адекватно рассчитывать программист?

Может вы могли бы посоветовать какую не будь книгу или курсы ( платные / бесплатные ) именно по введению в программирование, которые бы не сразу учили кодировать, скажем в Java, а сперва имели бы солидную вводную часть, где бы раскрыли, чем одним язык отличается от другого, научили бы алгоритмизации и т.д. то есть нечто такое, после чего можно становиться программистом, а не кодером.

Заранее Больше Спасибо! :)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#3
программированием уже скоро станет неактуально заниматься, ввиду усложнений связанных с энергитическими запасами Земли, короче, скоро "кина не будет, электричество..." кончится ))
посему, лучше займись исследованиями перспективных видов получения энергии, электрической в часности :)

программирование это прежде всего форма мышления.
почитай про алгоритмизацию, это ты в правильном направлении смотришь. какую-либо книгу порекомендовать не смогу, т.к. мне об этом в универе из уст в уста, т.с., передавали.
вообще, то, если сможешь взять какую-то численную задачу математическую и построить к ней алгоритм, интуитивно, без каких-либо спецификаций, то можно сказать, что программировать ты научишься. т.к. фактически программирование есть не что иное как проекция алгоритма на код, посредством языка программирования.

можешь почитать труды, например,
Страуструпа (Язык программирования С++)
http://en.wikipedia.org/wiki/Bjarne_Stroustrup
Кнута (Искусство программирования)
http://en.wikipedia.org/wiki/Donald_Knuth
Макконнелл Стив, Совершенный код
http://en.wikipedia.org/wiki/Steve_McConnell
http://www.piter.com/book.phtml?978546900822
и подобных им
еще по базам данных, только именно о теории БД
например, http://www.williamspublishing.com/Books/5-8459-0384-X.html

глядишь, и программировать перехочется пока прочтешь ))
книги весьма сложные и нудные, но, если подобных не читать, то... даже не знаю )) я их еще не дочитал ))
 

hosm

* so what *
18.05.2009
2 442
6
#4
почитай про алгоритмизацию, это ты в правильном направлении смотришь. какую-либо книгу порекомендовать не смогу, т.к. мне об этом в универе из уст в уста, т.с., передавали.
гм, устное народное творчество, так сказать. :newconfus:
вот в школе программа есть - Росток - они понятие алгоритма как последовательности действий (операций) для решения какой-то задачи вводят во 2м классе - без привязки к программированию, в курсе математики.
глядишь, и программировать перехочется пока прочтешь ))
во настращал

если сможешь взять какую-то численную задачу математическую
ну, не обязательно математику, если с ней не дружите, можно взять какую-нить обработку текста, например, или хоть с нашего форума задачки иногда школьно-студенческие бывают, где подумать надо немного.
если хотите - пробуйте :)
а вообще - хорошо подумайте: оно Вам надо? ;)
вот, нашла из старых ссылок:
Как стать хорошим программистом? (часть 2 из 3)
там немного. почитайте и подумайте. часть 3 и 4 (там и такая есть, найдёте по тегам) тоже можно...
 
R

RM2010

#5
Спасибо за советы! B) Как вы уже поняли, так увлёкся, что написал программу, которой я опроверг целесообразность алгоритма "tip for tap" в задаче "prisoner's dilema". Если вы изучали теорию игр, то наверняка знаете об этой задаче.

Two suspects are arrested by the police. The police have insufficient evidence for a conviction, and, having separated both prisoners, visit each of them to offer the same deal. If one testifies (defects from the other) for the prosecution against the other and the other remains silent (cooperates with the other), the betrayer goes free and the silent accomplice receives the full 10-year sentence. If both remain silent, both prisoners are sentenced to only six months in jail for a minor charge. If each betrays the other, each receives a five-year sentence. Each prisoner must choose to betray the other or to remain silent. Each one is assured that the other would not know about the betrayal before the end of the investigation. How should the prisoners act?
Алгоритм tip for tap утверждает, что если один преступник действует случайным образом, а другой его предаёт только если тот его предал первым, то общий результат будет лучше, чем если оба преступника действую случайным образом.

код программы в с алгоритмом tip for tap:
<!--shcode--><pre><code class='python'>from random import randint

cycle = 0

prisonerayears = 0
prisonerbyears = 0
prisonerabetray = 0
prisonerbbetray = 0
prisonera = 0

print("------------------- PRISONER'S DILEMA 101 -------------------------")
print("----------------------- TIP FOR TAP -------------------------------")
print("")

while cycle < 100000 :

if prisonera == 0:
prisonerb = 0
else:
prisonerb = 1

prisonera = randint(0,1)
cycle=cycle+1

if prisonera==0 and prisonerb==0:
prisonerayears = prisonerayears + 0.5
prisonerbyears = prisonerbyears + 0.5

if prisonera==1 and prisonerb==0:
prisonerbyears = prisonerbyears + 10
prisonerabetray = prisonerabetray + 1

if prisonera==0 and prisonerb==1:
prisonerayears = prisonerayears + 10
prisonerbbetray = prisonerbbetray + 1

if prisonera==1 and prisonerb==1:
prisonerayears = prisonerayears + 5
prisonerbyears = prisonerbyears + 5
prisonerabetray = prisonerabetray + 1
prisonerbbetray = prisonerbbetray + 1


print("prisoner A betrayed",prisonerabetray,"times and spend",prisonerayears,"in jail.")
print("prisoner B betrayed",prisonerbbetray,"times and spend",prisonerbyears,"in jail.")
print("")
print("total of", prisonerayears+prisonerbyears,"years")
print("")
print("diviation", abs(prisonerabetray-prisonerbbetray),"times per",cycle,"cycles or", abs(prisonerabetray-prisonerbbetray) * 100 / cycle , "%")
print("")[/CODE]

результат:
------------------- PRISONER'S DILEMA 101 -------------------------
------------------------ AT RANDOM --------------------------------

prisoner A betrayed 49798 times and spend 387855.5 in jail.
prisoner B betrayed 49951 times and spend 386325.5 in jail.

total of 774181.0 years

diviation 153 times per 100000 cycles or 0.153 %



------------------- PRISONER'S DILEMA 101 -------------------------
--------------------- ONE KEEPS SILENT ----------------------------

prisoner A betrayed 49957 times and spend 25021.5 in jail.
prisoner B betrayed 0 times and spend 524591.5 in jail.

total of 549613.0 years

diviation 49957 times per 100000 cycles or 49.957 %



------------------- PRISONER'S DILEMA 101 -------------------------
-------------------- BOTH KEEPS SILENT ----------------------------

prisoner A betrayed 0 times and spend 50000.0 in jail.
prisoner B betrayed 0 times and spend 50000.0 in jail.

total of 100000.0 years

diviation 0 times per 100000 cycles or 0.0 %



------------------- PRISONER'S DILEMA 101 -------------------------
------------------------ BOTH TALK --------------------------------

prisoner A betrayed 100000 times and spend 500000 in jail.
prisoner B betrayed 100000 times and spend 500000 in jail.

total of 1000000 years

diviation 0 times per 100000 cycles or 0.0 %



------------------- PRISONER'S DILEMA 101 -------------------------
----------------------- TIP FOR TAP -------------------------------

prisoner A betrayed 49830 times and spend 386861.0 in jail.
prisoner B betrayed 49830 times and spend 386861.0 in jail.

total of 773722.0 years

diviation 0 times per 100000 cycles or 0.0 %


вывод:
В данном случае, когда первый преступник действует случайно и не способен запоминать и анализировать действия второго, алгоритм tip for tap никакой пользы не приносит, так как оба преступника получают почти такой-же результат, как если бы оба действовали случайным образом.
 
H

haze

#7
Судя по себе, доходы небольшие у программистов)