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

Тема в разделе "Свободное общение", создана пользователем RM2010, 29 янв 2010.

  1. RM2010

    RM2010 Гость

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

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

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

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

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    К 26 лет не решили чем заниматься? Ну это о многом говорит!
     
  3. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    программированием уже скоро станет неактуально заниматься, ввиду усложнений связанных с энергитическими запасами Земли, короче, скоро "кина не будет, электричество..." кончится ))
    посему, лучше займись исследованиями перспективных видов получения энергии, электрической в часности :)

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

    можешь почитать труды, например,
    Страуструпа (Язык программирования С++)
    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

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

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    гм, устное народное творчество, так сказать. :newconfus:
    вот в школе программа есть - Росток - они понятие алгоритма как последовательности действий (операций) для решения какой-то задачи вводят во 2м классе - без привязки к программированию, в курсе математики.
    во настращал

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

    RM2010 Гость

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

    Алгоритм 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 никакой пользы не приносит, так как оба преступника получают почти такой-же результат, как если бы оба действовали случайным образом.
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    мне кажется или он над нами издевается?.. ;)
     
  7. haze

    haze Гость

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

Поделиться этой страницей