![]() |
С чего лусше начать, потом продолжить и т.д.
Вот я например искренне хочу изучать(или хотябы понять что смогу, но вроде слабоумием и невосприимчивостью к чемуто новому не отличаюсь) языки програмирования. Подскажите плиз с чего лучше начать новичку и т.д. (Только не надо плиз обьяснять как пользоваться мышкой и т.д. это я уж както сам разберусь :-D ), я имею в виду литературу, если не трудно выложите ссылки ссылки. Вот сейчас нашел литературу по Ассемблеру(хз по русски так звучит или нет), изучаю, а стоит или нет? Мож с чего другого нада начинать? Буду благодарен любой информации. И еще, ппц, установил висту и через некоторое время перестал работать Enter(причем оба), мож я кудато нажал, подскажите кто знает, первый раз с вистой общаюсьеще не успел освоиться. Заранее всем благодарен, надеюсь не проигнорируете.
|
Цитата:
|
Да я сам пока затрудняюсь к чему хочу прийти, просто интересно для себя. Поэтому и прошу совета. А к чему вообще можно прийти?:d
|
Цитата:
|
Цитата:
Что касается начинаний :) |
Цитата:
|
Цитата:
имхо лучше С, С++ или Java... |
Цитата:
|
А вообще, сейчас уже нет особого смысла шарахаться от бейсика. Самый главный козырь - его официально и целенаправленно поддерживает МС, а это многого стоит. Да и бейсик это уже не тот, что лично я учил 15 лет назад. Совсем не тот.
Да и под дотнет имхо нет большой разницы на чём писать - всё равно в один код компилируется. Всё имхо, не пинайте ногами. |
Цитата:
|
Цитата:
и не нам учить его делать бизнес |
Цитата:
1. Посоветуйте мне лучшую среду для java программирования. 2. Для java программирования среда на следующей неделе обещает быть самой лучшей. За точность цитаты не ручаюсь, но смысл такой... По поводу выбора действительно трудно сказать, кроссплатформа, она и в африке... |
Цитата:
|
Цитата:
и священных войн никто не жаждит - мы тихо-мирно обсуждаем с чего лучше начать деятельность программиста в свое удовольствие так сказать... |
Цитата:
И позвольте увести разговор немного в другую степь: а Вы знаете такую ФС, где нет фрагментации? Хотя... работа GC похожа на такую ФС. В) Только это уже всё равно дефрагментатор. |
Цитата:
|
Цитата:
|
Народ, я решил попробовать себя в С#, можно пытаться начать с него не зная никаких других языков(кроме русского конечно :d )? Если да, то дайте плиз скачать Visual Studio .NET, и кстати, он на висте пойдет? Если нет то если вкорячить и висту и ХР они конфликтовать не будут?
|
Цитата:
Код:
alexey@home:~/storage2$ sudo ./1.plКод:
500G ReiserFSКод:
# sudo ./frag.pl /rootвот тут расписано для меня 3-5% не имеют большого значения по сравнению с 42% потому я и не принимаю ее в расчет |
Цитата:
на висте идет без проблем ник в ДЦ LiMoN |
Цитата:
|
Цитата:
Вот уж не знаю почему (не разбирался), но натурные измерения копирования файлов показывают, что на ФАТ32 оно выполняется в среднем на 10-12% быстрее. |
Цитата:
Кстати, может кто поделиться ссылочкой, где можно почитать, почему на *никс системах такая низкая фрагментация? Осмелюсь предположить, что там в саму ФС встроен алгоритм дефрагментации перед записью. Т.е., если надо записать какой-то файл, ищется ближайшее свободное место (возможно в какой-нибудь карте) и затем расширяется с помощью переноса обрывков влево и вправо до очистки необходимого места. И кстати, не совсем понятно о какой фрагментации идёт речь: о физической или о логической? |
Цитата:
з.ы. а вот фрагментация на одном из моих разделов Код:
vulzscht vulzscht # fsck /dev/sda3 -f |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
И так, мы плавно возвращаемся в русло начатой темы: Начинать лучше с того, что ты хочешь делать, каждый язык хорош для чего-то одного: С++ для ресурсоемких приложений, Паскаль для рапид-программинга, васик - побыстрей выучить (хотя спорно уже сейчас) - C# - вот тут хз, похоже это замут на будущее - имхо CLR будет в будущих версиях винды работать в ядре и работать очень не медленно. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Кошерный путь, с которого начинают "правильные" программисты, это книжка SICP (Structure and Interpretation of Computer Program) и язык, соответственно, Scheme.
Книжка, как и несколько реализаций Scheme, доступны бесплатно. |
Эх-ма, не хотелось встревать изложением достаточно длинного содержания, да больно тут уж безапеляционные и однозначные ответы/советы. Поостерёгся бы я давать такие. ИМХО начинать следует с shell. Поскольку в мире имеется огромное количество программ, из которых, как из кирпичиков, с помощью более или менее сложного скрипта можно быстро и просто построить решение чуть не любой задачи - для большинства пользователей этим можно и закончить. C/C++/Java допустимы для тех, кто активно интересуется вопросом. Им тогда в придачу архитектуру надо учить (и чуточку ассемблера), или соответственно практику написания ООП-кода во избежание типичных грабель этих индустриальных языков. По любасу понять ООП программирование проще тому, кто уже понимает, что такое процедурное программирование, а из процедурных языков C самый ходовой, и не по историческим причинам. Особенно легко и приятно не думать на С, который тоже не думает за человека, а потом долго удивляться, а чего это программа в корку падает, куда память утекает, почему в файл вместо данных кракозябры пишутся, почему "мой-наикрутейший-собственноручно-написанный-вебсервер-сломали". Это не отменяет единое для всех языков программирования свойство, что чтобы писать хорошие программы надо это делать умеючи. С - язык не для обучения программированию. Совсем наоборот. C отличный язык, чтобы изучать программирование. Он требует понимания того, как работает машина. Машинного мышления, если хотите. Натурально, любой директивный язык гомоморфен машине им. фон Неймана. Включая, кстати, стандартный язык оболочки ОС. Изучение синтаксиса, это 100 страниц. А понимание, как правильно писать программы - тысячи страниц. И более того, понятие "научиться программировать" обычно по неграмотности ужимают до процесса написания кода на каком-либо языке программирования. Мне кажется в данном контексте "с чего начать", преследует именно эту цель!!
Если действительно хочется научиться, то надо: 1) Научиться делать постановку задачи. Понимать, ЧТО именно мы хотим получить на выходе. 2) Научиться системно подходить к решению задачи. (Определение системы: "Система - совокупность взаимодействующих между собой подсистем. Каждая подсистема является системой") Т.е. уметь разбивать задачу на подзадачи. Построить общий алгоритм решения. 3) Научиться выбирать для решения каждой из задач наиболее эффективный инструмент (наконец-то дошли до выбора языка программирования) 4) Научиться грамотно пользоваться выбранным инструментом. 5) Научиться контролировать процесс каждого из этапов, выявлять возможные ошибки заранее ("чувствовать, где могут лежать грабли"). Проштудировать "Законы Мэрфи" ;-) И не надо тут говорить, что существуют какие-то специальные языки, которые подходят для обучения, а какие-то другие - не подходят. Все это чушь. Учиться программированию следует на том инструментарии, который больше годится для практической работы, а не на каких-то идеальных сферических конях. |
Веб-дневник Владимира Шабанова 2007
SICP: Впечатления от прочтения SICP — это не учебник по Lisp, это книга по Программированию. Если вы просто хотите изучить Lisp или Scheme, то SICP не для вас, лучше попробовать что-нибудь попроще. Книга стала одним из самых интересных и серьезных текстов, прочитанных мною за последнее время. После книг Кернигана и Ритчи, Страуструпа, книг по OCaml, Haskell, кучи тьюториалов, мануалов, статей и прочей литературы, SICP стала для меня чем то вроде откровения о том, какой должна быть книга по программированию. Книга действительно предназначена для первокурсников. Она не требует никаких предварительных знаний по программированию. В отличии от обычных книг, SICP не учит синтаксису (его у лиспа почти нет), а учит базовым вещам, необходимым для понимания того, как надо программировать. Причем, выбор этих базовых вещей и уровень их объяснения поистине шедеврален. Уже на 20-й, 30-й странице мы узнаем о нормальном порядке вычислений, lexical scoping, рекурсивных и итеративных процессах, функциях высших порядков, lambda-выражениях, замыканиях и прочих вещах, о которых я узнал гораздо позже, чем надо. А к концу второй главы знаний хватает на то, чтобы писать 90% встречающегося кода. И мы еще не дошли до изменяемого состояния, модулей и объектов! И вот мы доходим до модулей, объектов, потоков, параллелизма, распространения ограничений. Вы думаете, сейчас вам будут рассказывать, как пользоваться готовыми фреймворками или специально заточенными элементами языка программирования? Фигушки! Вам объяснят, как это сделать с нуля, из тех самых базовых кирпичиков, изученных в первых двух главах. Ничего больше не нужно! Это потом, в других языках (или на следующем курсе), вы увидите, как это можно сделать короче и запутаннее. Сейчас вы должны понять основы, как это сделать самому. И что самое приятное, все это сопровождается общими объяснениями, жизненными примерами и интересными упражнениями. Теперь, казалось бы, мы знаем основные методики программирования. Только этого мало. Для лучшего понимания процесса вычислений нам надо построить несколько интерпретаторов: самой Scheme, схемы с ленивыми вычислениями, с недетерминистским вычислением, а также интерпретатор для среды логического программирования. Четвертая глава вам в этом поможет. Что, скилл в вычислениях прокачан и карма аж светится? Но ведь вы все это время были далеки от железа и не знаете, как все это работает уровнем ниже Scheme! Тут то (в заключительной главе) вам и расскажут про регистровые машины, даже парочку-троечку спроектируют. Чтобы было на чем их проверять, вам опишут имитатор регистровых машин. Вы узнаете про стек. Вам расскажут про сборку мусора (и конечно покажут, как ее сделать с нуля ;). Чтобы прокачать понимание регистровых машин, вы напишете интерпретатор Scheme на своеобразном ассемблере. Но ведь интерпретатор — это медленно, надо написать компилятор! А компилятор сам по себе не очень удобен (нет интерактивной разработки), так что скрестим его с интерпретатором. Страшно? Ничего, ребята действительно хорошо все объясняют. Вот теперь, дочитав до конца, я по-настоящему пожалел, что не прочел эту книгу раньше, до бейсика, паскаля, с, асма, с++, окемла, лиспа, пролога, эрланга, хаскела и др. Еще в первой половине списка я начал находить много общего, потом уже я узнал про императивное, функциональное, логическое программирование, посылку сообщений и т.д. Примерно понимал и устройство компа, знал что такое интерпретаторы, компиляторы и их помеси. Но, черт возьми, это все было от деталей к туманному общему, а не наоборот, от разжеванного общего к деталям на практике. Выводы Если Вы только начинающий программист, SICP обязательна к прочтению. Многие вещи, которые Вы будете изучать потом, будут казаться Вам знакомыми. А если Вы программист со стажем, то следует почитать хотя бы для наведения порядка в голове. |
Кому интересна книга забирайте в ДС, в формате pdf. Ну и библиографическая редкость! Едва, едва отрыл на просторах инета. ;) Итак читаем sicp.pdf
|
ЛОР, опрос про любимый язык программирования:
anonymous: "Давайте представим аналогичный опрос скажем, на форуме врачей: какой ваш любимый инструмент ? -скальпель рулит! -нифига, скальпель только лохи юзают, вот градусник - сила!! -да все отстой, за горчичниками будущее...." (С) баш |
Ещё одно. Я прочитал, весьма интересна.
http://second.udomlya.ru/uf/showpost...3&postcount=29 |
Цитата:
А вот столь сильно расхваливаемую тут книгу о структурном программировании как-то не осилил. Примеры там конечно очень интересные, но как-то смысл я не совсем понимаю - это попытка приблизиться к потоковому программированию? |
Цитата:
|
В личке довольно долго обсуждали тему с человеком, сложившееся в результате этого мнение решил форварднуть сюда. ИМХО, чтобы на РНР писать программы, а не решето из дыр, квалификация должна быть довольно высокая. Здесь лучше начать с Ruby и/или Python. Если надо получить краткий обзор языка плюс какие-нибудь ссылки по нему, я обычно смотрят на http://ru.wikibooks.org
Чтобы "въехать" – лучше купить бумажный букварь. Для начального обучения, это предпочтительнее онлайновых руководств. Поскольку речь идет о Web-программировании - прежде чем изучать какой-либо язык динамического создания страниц - НЕОБХОДИМО в совершенстве изучить язык их разметки - HTML. К примеру: - Е.В. Мальчук - HTML и CSS - Н.Н. Куссуль - Использование PHP Годятся и любые другие, только не брать слишком толстые - поскольку основное назначение таких книг - дать быстрое начальное введение и основные понятия, а вот уже в качестве справочника удобнее использовать онлайновые руководства. И ещё пара книг: "Разработка Web-приложений на Php и MySQL" - книжка очень полезная, в ней рассматриваются возможности языка и не отдельно только они, но и совместно со всякими вспомогательными инструментами, которые просто не могут не пригодится разработчику интернет приложений. И вторая книга "PHP глазами Хакера" - в ней очень кратко, но довольно доходчиво разъясняются основные ошибки программиста и методы взлома соответственно. |
Попалась на глаза старая тема....решилось уточнить вдруг. :)
Как мне кажется, выбор языка важен только в том случае, если планируется сразу после обучения подключиться к какому-нибудь реальному проекту. Если же это не предвидится, то следует выбирать из языков, которые: 1) хорошо известны тому, кто реально будет учить, чтобы учитель не попадал в неловкое положение от того, что он не только не знает каких-то вещей, но и слабо ориентируется в справочных материалах по выбранному языку. Это в случае поддержки со стороны, ибо твёрдо убеждён, что высказываемые желания поучится/научиться программированию при отсутствии гуру просто фикция. Самому с нуля научиться - практически не реально. (никогда не верю тем, кто подобное говорит) 2) хорошо воспринимаются конкретным человеком в силу его психологических особенностей: одни лучше усваивают избыточное и более приближенное к естественному языку (Модула, паскаль, бейсик). другие - схематичные языки вроде С/С++, третьи - нечто промежуточное вроде Fortran. Гораздо важнее определиться, зачем учиться. Если составить общее представление, то по верхам С++ или что-то подобное. Если планируется научиться программированию, то больше внимания следует уделять не самому языку, а различным стилям программирования, качеству кода, алгоритмизации, описанию предметной области рассматриваемой задачи. Если планируется быстро натаскаться под конкретную задачу, то пара стандартных приемов, один базовый стиль и конкретный язык под задачу. Единственное, что действительно имеет смысл учесть при выборе базового языка и среды программирования для начала обучения, это либо максимальная абстрактность этого языка, либо кроссплатформенность, чтобы не привязывать к конкретной среде разработки (в наиболее общем смысле, от ОС до языка), если, конечно, это не натаскивание под конкретную задачу.. |
Цитата:
По теме: Так же считаю, что самое главное определиться с тем для чего человек желает обучиться, а уж затем переходить к выбору с чего начать. Вполне может оказаться, что для целей. которые ставит перед собой человек, обучение вовсе не нужно. В качестве примера: допустим некий человек захочет написать игрушку. Для того что бы самому это сделать на "обычном" языке программирования потребуется большое количество времени обучения, там и графика и физика и ещё черте-что и с боку бантик. В тоже время существуют достаточно удобные конструкторы, где не надо "заморачиваться" с такими вещами. Ну это так, пример. |
Цитата:
|
Цитата:
Например, столкнулся недавно с такой проблемой (расскажу, раз уж тема про программирование): мне потребовалось на ноге TxD порта RS232 держать постоянно неактивный уровень, т.е. +12 В. Делал я это в С# и спользование стандартного компонента (неплохо работает, кстати). Первая мысль была (я почему-то так и думал, что все так делают): посылать постоянно посылку их 0x00, но вот одна незадача: посылка всегда заканчивается стоп-битом (лог. 1 =-12 V, в результате получается не 12В, а 9.8В), а поставить 0 стоповых бит почему-то нельзя. Долго гуглил, лазил по всяким форумам, долго пасся на CodeProject, нигде ответа не нашёл. Уже в четвёртом часу ночи решил поискать исходники программатора, к моему величайшему удивлению, нашёл сорцы под линукс одного из программаторов, долго ковырялся по нему и наконец нашёл это простейшее решение (меня долго удивляло, что он делает это действо всего одной строчкой, никак не мог понять почему). Выяснилось, из-за моего неточного понимания работы порта RS-232 я и не смог найти решение. Дело в том, что режим IDLE в RS-232 - это высокий активный уровень, т.е. -12 В, но есть такой режим - BREAK, это когда на шине устанавливается низкий активный уровень больше чем на один фрейм, т.е. - имеется возможность напрямую управлять пином TxD. Потребовалось всего 1 строчка: Код:
COM.Break = true;ЗЫ. забыл сказать, первая реазилация этой задачи занимала порядка 30 строк с выделением дополнителного буффера и созданием отдельного потока, который постоянно пихает 0x00 в порт. В) А ведь есть программы, разработчики которых не стали заморачиваться и остановились на подобном решении, а мы потом спрашиваем, почему это компьютерные программы тормозят всё больше и больше. |
Цитата:
|
| Текущее время: 18:17. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot