Архив | Заявка в команду | Календарь | Справка | Гарант-сервис | Руководство форума | Правила форума | Обратная связь/контакты |
|
Форум хакеров Хакерский форум посвященный взлому и безопасности. Услуги хакеров, покупка, продажа, обмен, работа. |
|
Опции темы | Опции просмотра |
09.04.2018, 19:26 | #1 | |||
«Герой форума WM-Forum»
«Пропавший без вести»
|
JavaScript как много в этом слове.
Иногда, тех из нас кто заходит в данный раздел форума, посещает мысль, а не начать ли ломать себе мозг каким-нибудь языком программирования. Если эта мысль в сознании находится больше 5 минут, то сразу возникает вопрос, а что же за язык выбрать для изучения программирования. Пытаясь на бескрайних просторах интернета найти вразумительные советы, сразу начинаешь терять душевное равновесие из-за разброса мнений.
Может как некоторые студенты начать учить Visual Basic. Сразу же выскакивает куча возражений. VB вызывает жесткую шаблонизацию мышления, которая сделает программиста калекой на всю оставшуюся жизнь. А все богатство возможностей этого чудного языка позволит вам написать лишь собственный калькулятор, если стандартный виндусовский вас не очень устраивает. Может нужно учить C/С++ ,но с учетом его высокого порога вхождения, можно тогда уже сразу пытаться кодить на ассемблере. Можно начать учить PHP ,но ваши товарищи сразу же навесят на вас ярлык "быдлокодера" и удалят ваш номер телефона из списка контактов. Вот мы плавно и подобрались к языку Java Script. Попробуем взглянуть на все за и против. Возможно бородатые дядьки разработчики смогут развеять эти представления, по пока будем исходить из следующего. JS хорош тем, что у него низкий порог вхождения, его снизили практически до уровня нуля. Поэтому нередко тех кто кодит на JS вообще не считают программистами. В JS динамическая типизация, о типах переменных можно вообще забыть и пусть этим страдают другие. Не нужно качать никаких приложений весь ваш код будет выполняться в обычном браузере. Вам не нужно качать никаких виртуальных серверов типа денвера, чтобы запустить ваш код. Браузер и блокнот есть в любой Ос по умолчанию. А теперь о минусах: Весь богатый функционал JS пригодиться только для того, чтобы напичкать ваш сайт визуальными эффектами. На самом деле не только, но это не для уровня новичков. Тот же Node.js выполняется на стороне сервера, но это уже отдельная история. Динамическая типизация вызовет проблему при переходе к языкам с статической типизацией. |
|||
|
10.04.2018, 03:14 | #2 |
«Герой форума WM-Forum»
|
Не совсем правильный подход. Если просто хочется развлечься, можно и поизучать JavaScript. А если хочется стать айтишником, то надо для начала изучить спрос на рынке труда. И уже исходя из этого развиваться в нужном направлении. Только следует иметь в виду, что ниша динамична и очень все быстро меняется. Появляются новые языки программирования и технологии. И они заточены под быструю разработку кроссплатформенных проектов. Именнно, чтобы программист не нашпиговал код трудноуловимыми ошибками, чтобы он быстро и не ломая себе мозг сделал приложение, которое одинаково хорошо будет работать на любой из ныне существующих платформ. Вот именно к этому все идет: от примитивного к совершенному.
И это я говорю, как айтишник с опытом в программировании с 1988 года. В 1988 году мне было 13 лет и я начал изучать Basic. И постепенно.... Сейчас я помню еще Basic. Могу спокойно программировать на VBA, Visual Basic. Если перечислять языки программирования, которые я знаю, то их порядка 10. И это, не считая ассемблеров для Intel, Zilog, Motorola, Mos Technology и контроллеров PIC и других. В C++ может и высокий порог вхождения, но мне этот язык совсем не кажется сложным. Он своеобразный, но программировать на самом деле на нем просто. Этот язык совмещает низкоуровневое и высокоуровневое программирование. И в этом его прелесть! И его синтаксис настолько удачен оказался, что его позаимствовали и C#, Java, PHP и другие языки! На Object Pascal, который в Delphi используется, синтаксис громоздкий, в сравнении с C++, но поддержка ООП почти такая же, как в С++. Различия есть в этой поддержке. Но синтаксис... С++ - это изящество, а Pascal - нагромождение! Пример: function funcMax(a,b:integer):integer; begin result := a; if b > result then result := b; end; сколько всякого... А вот сишный код прост и красив: int funcMax(int a, int b) { return ( a > b ? a : b); } Можно почитать про "польскую нотацию", язык программирования Форт и функциональное программирование. Функциональное программирование ломает мозг! И еще мир разделился на Delphi-программистов и Си-программистов. И они друг друга хаят. И это глупо. Язык программирования заточен под определенный класс задач и имеет свою идеологию! И если все это соблюдать, то геморроя в программировании не будет. На Delphi легко писать прикладной хлам для бухгалтеров! А на "сях" комфортнее писать проги для железа! Для сравнения: попробуйте на скорость сделать простейшую прогу: окно с кнопкой, по нажатию на которую выскочит другое модальное окошко с надписью "Hello!". И сделайте это в Visual Studio и Embarcadero RAD Studio! А есть еще и Java! Вот напишите точно такую же программу с окошком и кнопкой, но чтоб эта программа работала и под Windows, и под Linux! А еще и под Android! И тогда придет понимание, что программирование - штука интересная. Только в мире сейчас столько всякой электроники и управлять этой электроникой вполне можно, умея программировать. И надо еще немного уметь читать и добывать информацию. Самостоятельно. Для примера: есть вендинговые машины, например, которые кофе в стаканчики наливают. Так вот, внутри этой кофемашины есть обычный контроллер и энное количество устройств, которые по шине подключены к этому контроллеру. Можно подключить еще и свою приблуду на микроконтроллере к той же самой шине, изучить протокол MDB, а потом кофейный агрегат снабдить выходом в Интернет. И управлять им удаленно. Это сложно? Это просто! Тем более, это люди уже сделали и можно просто в Интернете посмотреть, как это сделали другие. А это еще больше упрощает решение задачи! Так что современное программирование при наличии Интернета не такое уж и сложное и про высокий порог вхождения можно забыть. Последний раз редактировалось SeaMan75; 10.04.2018 в 03:34. |
|
10.04.2018, 10:07 | #3 | |||
«Герой форума WM-Forum»
«Пропавший без вести»
|
|
|||
|
10.04.2018, 18:04 | #4 | |
«Герой форума WM-Forum»
|
Согласен! Вакансий и по JS много. И программисту нужна усидчивость, интерес и желание много и много писать кода! Очень много. Нужен английский язык для того, чтобы учиться и читать мануалы. А если работать на ЕПАМ, то, увы, английский обязателен.
Цитата:
Я программирую уже много лет. А диплом у меня вообще дикий - экономист. Было много гемороя на первых порах: кое-где смотрели диплом, а там... Экономист??? Какой экономист, нам же программист нужен! А потом стало проще. В диплом редко посматривали, а задавали вопросы, например: расскажите про коллекции в Java или в каких случаях подзапрос будет оптимален или, например, как "дерево" представить в виде таблицы. Вопросы всякие и разные на собеседовании. Но они не сложные. Просто надо много читать и программировать! Чтобы было больше мотивации, можно и фрилансить. Плюсы очевидны: нарабатывается опыт, растет зарплата. Нет начальника. Но и минусы тоже есть: надо жестко себя контролировать, заказчик может кинуть. Задачу надо решить, если взялся. Брать надо задачи попроще, учиться, учиться и делать все более сложные проекты. Программирование надо любить. |
|
|
10.04.2018, 21:28 | #5 | |||
«Герой форума WM-Forum»
«Пропавший без вести»
|
|
|||
|
11.04.2018, 01:59 | #6 | |
«Герой форума WM-Forum»
|
Цитата:
Вот, как стал программистом я... В 1987 году появился дома бытовой игровой легендарный компьютер Commodore 64. Без дисковода. Все на кассетах. Программ к нему нету! Только игрушки, привезенные с Италии. Все. Интернета нет! Книжек на русском языке и учебников нет! Только три книжки по самому компьютеру и егоному встроенному Бэйсику. Все три книжки на итальянском языке. А в Москве в то время это был распространенный компьютер и там для него было тонны программ! Но я жил в Минске. подозреваю, что и в Минске были и программы, и более опытные владельцы этой "игрушки". Но я никого не искал. Мне хватало просто придти со школы и тупо играть и играть! Игрушки у него были крутые, музыка многоканальная, мелодичная. Графика красивая (для того времени). И ему очень сильно уступали Спектрумы, Векторы 06Ц, Синклеры, Микроши, Электроники и так далее. Время шло. Уже была середина 1987 года, почти 1988 год. И чего-то меня занесло на улицу Урицкого в Минске. А там такое старенькое советское здание. И на втором этаже компьютерный класс! И там много компов! "Немига" они называлмись. Клавиатуры тяжеленные, в железном корпусе! Гвоздь заколотить такой клавиатурой можно было за милую душу! Как оказалось, это был кружок программирования. И бесплатен он был. Ведь у нас все еще был тогда СССР! Вот я проходил мимо, зашел и меня записали. И стал я там изучать Бэйсик! И процесс пошел! Какая-то магия манила меня на эти "Немиги". Играл в Тетрис на тех компах, но больше я программировал! Первая моя программа была вот примерно какой: 10 Screen 3 20 Circle (120,180,70) Вроде бы так... Запускал ее (Run) и на черном экране появлялась окружность. Круто как было. А потом всякие окружности в цикле, в случайном порядке.... ...... За месяц я освоил Бэйсик от и до! Прочел по нему много разных книжек. А первая книжка была "Бэйсик - это просто". В процессе еще на один кружок записался и там уже были другие компы с цветными экранами. Потом меня пускали просто за компы в разных местах. Я просиживал всюду, всякое пытался делать. Дорвался однажды и до такого компа, как Apricot! Тогда это был крутой комп для 1989 года! Музыка, графика, почти реалистичные игры, памяти вагон... А дома был Commodore 64 с примитивным Бэйсиком и 10 Screen 3 20 Circle (120,180,70) на нем никак не канала! Не было у этой версии бэйсика графических команд, не было команд генерации звука. Все это было в более крутых версиях Бэйсика, который нужно было загрузить. Были картриджи, на которых были более крутые версии Бэйсиков, Паскалей, Си и так далее. Но все это было где-то, а в Минске я нашел только картридж с версией Simons's Basic и копией книжки к нему на венгерском языке. Так что везде, где я шарился, я всякое делал, а дома на Бэйсике пытался делать игрушки и всякие программы. Но как же их делать, если Бэйсик не поддерживает графику? Очень просто: напрямую управлять можно видеоконтроллером, звуковым чипом! И понеслось... очень много команд было таких: poke 53281,2: poke ..., .. И еще была команда peek, например так: poke 53281, peek (53280) (вроде так, уже и не помню). Лез просто к регистрам видеоконтроллера и других микросхем, заставлял комп и рисовать, и звуки всякие генерировать. Это уже был 1989, 1990 годы. Но на Бэйсике все работало медленно до безобразия! Просто переключиться в графический режим и в цикле очистить экран (видеопамять графической системы занимала аж 8 килобайт! 320 на 200 монохромной графики или 160 на 200 некоего подобия цветной графики) занимало аж секунд 20! Тогда я начал изучать машинные коды и язык ассемблера для этого компьютера! Изучал и всякое ваял! Но в машинных кодах! То есть я писал на бэйсике такой вот ужас: 10 data 238,32,208, 238,33,208, 76, 0, 192 20 a=49152: for i= 0 to 7: read b : poke a+i, b : next 30 sys 49152 и таких вот data ...... .... .... могло быть в сотнях строк! Но однажды брат (тоже таким же тогда занимался) нашел супер-пупер мега программу! Monitor 64 она называлась! Для Commodora 64 (отсюда и 64, а не разрядность проца, проц был аж восьмибитный!)! Стало все проще! Вместо того, чтобы средствами Бэйсика загонять в память машинные коды, мы стали это же делать просто и цивилизованно: 1. С кассеты грузили монитор отладчик. Он грузился по адресу $8000. Грузился быстро! (В 1989 году дисководы для Commodore 64 работали гораздо медленнее, чем кассеты, ибо для кассет придумали турбозагрузчик, который менее, чем за секунду грузил проги!). 2. Набирали sys 32768. Все! Монитор-отладчик запущен! И ему не нужно ПЗУ! он работает без него, у него все свое! И у компа 64 килобайта памяти, но 8 килобайт было занято ПЗУ! А для меня всего-то было 56 килобайт! И даже меньше немного! Ужас! Но по адресу 1 можнол было поменять один битик и тогда для меня была вся память: все 64 килобайта! 3. Вот в мониторе и вводили директиву A C000 и нажимали Enter. И можно было вводить команды ассемблера! Не машинные коды, а мнемоники! И мы вот и вводили, а монитор сам подставлял нужный адрес по которому команда сохранялась! Получалось вот так: $C000 INC $D020 $C003 INC $D021 $C006 JMP $C000 Намного проще, чем извращаться на бэйсике! Но беда! А если команду надо вставить, то.... никак, если уже написано много всего! Беда и геморой! Вставляли костыли. Энтузиазма было вагон! Я просиживал дни и ночи и ваял всякое! Я написал свой Ассемблер (две штуки), заточил их для работы в условиях, когда очень мало памяти! Все отлично работало! Я уже на своем ассемблере вот так писал: Org $c000 start: Inc $d020 Inc $d021 Jmp start Тут уже можно было вставлять команды, удалять. Все полноценно работало. Я влазил в игрушки, их крякал своим самодельным инструментом! Все канало! Я в одной игрушке никак не мог дойти до конца! 5 жизней всего давалось! Но очень хотелось! Так в конце концов я эту игрушку дизассемблировал, поставил себе бесконечное число жизней, мощное оружие по умолчанию и спокойно дошел до конца, плюя на всякую нечисть, ибо теперь они были бессильны... Я в то время уже научился делать игрушки, я этот Commodore 64, до последнего бита изучил! Я дизассемблиоровал чужие проги и смотрел, как сделали всякое они! Я научился делать плавные горизонтальные и вертикальные скроллинги экрана, как в игрушках, я научился делать мультизадачность на проце, который ее даже и не поддерживал! Все просто: вклинить свой обработчик прерывания IRQ: sei ldx .irq lda irq stx $0314 sta $0315 cli rts irq: inc $d020 jmp $ea31 Все! Если эту программу запустить, то как бы одновременно с работой встроенного Бэйсика будет и каждый раз меняться цвет рамки вокруг экрана! Словно он меняется в фоновом процессе. ( И почему я все еще помню все эти адреса и так далее... Столько лет прошло. Английский бы так запоминать...). Разобрался с машинной арифметикой (матсопроцессора на этом компе не было! Вся арифметика была восьмибитная и состояла из команд сложения, вычитания, сравнения и сдвигов! И из всего этого можно реализовать всю работу с дробями и всю арифметику, тригонометрию. Я это сделал только из-за энтузиазма, это никому не нужно было. Я сделал музыкальный, графический редактор, Тетрис со спецэффектами ну и так далее)... К 1994 году я уже знал Бэйсик, Паскаль и немного Си. Я изучил Ассемблер для своега компа (у него был проц Mos Technology 6502/6510), дорвался до другого компа и изучил еще и для проца Z80 ассемблер. Потом подсел на другой комп, поработал немного в операционке CP/M. К этому времени СССР исчез, а у многих уже появились IBM совместимые компы! Вскорости перешел на таковые и я! Началась другая эпоха! Ничего мне не надо было больше изобретать! Все было! И любые программы, сколько хочешь! И все это было под MS DOS! Первое, что я изучил, когда перешел на IBM PC/XT/AT, так это, естественно, ассемблер! И написал на нем генератор кроссвордов и сканвордов! Он отлично работал и я с его помощью ваял кроссворды в течение одного дня, за которые мне платили в тот же день гонорар аж 22 доллара! В РБ была зарплата на тот момент аж 20 долларов в месяц! А вскорости к власти пришел Лукашенко. Навыки, которые я приобрел на Commodre 64 тоже пригодились в программировании микроконтроллеров. Потом я почему-то вместо того, чтобы поступить в профильный ВУЗ, зачем-то выбрал экономический! Меня пугали, что тот вуз адски сложный, не поступлю, туда только гении поступают и блатные. А экономический - это ж престиж, это ж большим начальником будешь... Ну и завалил я все экзамены в этот экономический (на факультет из всех поступающих только двое и поступили. Они были при блате, возле них на экзаменах все время проверяющие отирались). Армия родная озаботилась мною! Давно не виделись! Надо было хоть куда влезть! Влез в какое-то... 4 года коту под хвост. 4 года игнорил почти все лекции, кроме физкультуры и информатики! (А на зачетах везло. И экзаменах везло. После экзамена даже спрашивали: как я сам себя оцениваю? Я честно, с ясным взглядом отвечал, что естественно все очень плохо! После этого за честность мне ставили трояк и мы разбегались... А часто просто удавалось удачно все списать прямо на экзамене. Но информатику мне не надо было списывать. Мне не нужно было везение. На информатике всегда все было классно. Это остальные лекции были досадным недоразумением и отмазкой от армии). Все 4 года зависал в компьютерном классе. Пошел процесс самосовершенствования. Изучал все! И более детально и глубоко! Pascal, C, потом и С++. Когда были экзамены по информатике, у преподавателя даже и мысли не возникло предложить мне билетик потянуть! При всей группе он попросил у меня зачетку и вписал туда "отл". В группе был еще один гений. Гораздо более гениальный, чем я. У него тоже на автомате был "отл". ...Начал изучать программирование под Windows. Изучал ООП, классы, полиморфизм. Закончил универ (экономист - это только буквы в дипломе). И опять (да что же это такое... военкомат). Ну достали же! Сколько ж можно! Я же еще 4 года назад им сказал, что не хочу... Пошел, нашел себе работу, устроился, начал работать программером! Имея дикий диплом! Устроился просто: пришел, рассказал кто я и предложил прямо тут в офисе показать, что я умею. Показал. Взяли без вопросов! Работаю. Все хорошо! А трудовую не оформляют. Трудовая не нужна! Решил, что мне нужна запись в трудовой. Пошел на госпредприятие. А там не хотели брать без профильного образования. Беда. А на фирме трудовая не нужна. Сошлись на том, что я пока на госе поизучаю именно то, то им нужно, а там будет видно. Вот так появилась вскорости в трудовой запись, что работал программистом. Появился стаж и так далее. Так вот, как только в трудовой появилась запись, что "инженер-программист", так сразу гораздо реже стали интересоваться дипломом! Стаж наработал, уже к тому времени программировал и под DOS, и под Windows. С базами данных уже работал. Если чего-то надо было сделать, цеплялся мертвой хваткой, искал ответ, как-то делал. Интернета все еще не было. Читал книжки. Если делать все по книжкам, то может так получиться, что все сделал правильно, а ничего не работает! В книжке же не пишут, что в системе должна быть нужная dll-ка! Это же Windows 95. Геморрой на косяке! Языков осваивал все больше и глубже все изучал. Потом еще и компы научился ремонтировать, сети монтировать, обслуживать всю эту кухню. А потом стал себя готовить к изучению многих новых языков программирования. Для этого я полез к студентам БГУИРа, полагая, что у них будут всякие задачки и, решая их, я буду изучать новое постепенно. Стал для студентов всякое делать. Ошибался я сильно! У заочников нет задач, которые развивают и заставляют и дальше изучать все и осваивать. А те, кто на дневном, сами не дураки. У них все задачки посложнее, но они их сами и делают! И студенты, кто хотел там получить знания, тот их получал самостоятельно! Целенаправленно. И, учась там, уже на третьем курсе студенты шли работать на фирму. Как прорваться на фирму без диплома нормального, если уже на фирму набирались толковые третьекурсники. Получается, я стоял на "перроне" и провожал "поезд", который ушел от меня, пока я дурью маялся в экономическом вузе. А мне хотелось на этот поезд запрыгнуть. (Впоследствии как бы "запрыгнул", вцепился в "хвост поезда" и тогда все и началось хорошее в карьере программиста). Если студент не хотел учиться, то он просто платил деньги и ему все делали. Знаю людей, окончивших такой ВУЗ, но так и не научившихся выключать комп. А мне попадался всякий шлак, скучный и неинтересный. Но потом поперло! Мне пошли заказы на Java! Я начал изучать Java. Попутно копал Web, JSP, Сервлеты. Прошелся по аплетам. Дальше, больше... Копал SQL (MySQL, MS SQL Server, FireBird, Oracle...). Потом полез в PHP. А потом сменил работу, где надо было делать и изучать самостоятельно многое. У меня уже был стаж и "правильная запись в трудовой" И именно эти два момента были решающими. На "дикий" диплом уже не реагировали: есть высшее и хорошо. Если было собеседование, то все было просто: я могу вот то, то и то... Все написано в резюме. Иногда собеседованием все и заканчивалось, а бывало и так: вот тут у вас написано в резюме, а вот покажите нам здесь и сейчас, что вы это и в самом деле умеете, вот напишите нам dll-ку на C++ и загрузите ее из программы на Delphi. Или такая ситуация: подводят к компу, запускают IDE, начинают компилировать проект! Сыпятся ошибки. Тыкают в экран и спрашивают: вот ошибка, какова ее причина, что означает, как устранить. Всякое было... И врать в резюме НЕЛЬЗЯ! Толковые эйчары в момент "раскроют". Но это, если они толковые. Ну и... Если хочется быть айтишником, но нет образования, нет желания столько всего лопатить ради того, что может быть когда-нибудь... А и не надо всего этого! Нужен просто хороший знакомый, который уже работает на фирме, который себя зарекомендовал отлично! Он просто должен поручиться! Он должен сказать так: я знаю этого человека. Он не знает ничего в программировании сейчас, но через неделю уже никто не будет жалеть, что взяли его на работу. А через полгода он станет офигенным айтишником! И соискателю просто нужно будет не подвести. Зубами вцепиться в изучение. Начать с того, что нужно здесь, сейчас и по работе! Но изучать надо будет самому, коллег НЕ ОТВЛЕКАТЬ в вопросах программирования. Только чисто обсудить по самой работе, но не по коду! Не приветствуется. Считается очень дурным тоном спрашивать то, что легко можно нагуглить! Ок, а если нет таких знакомых? Тоже не беда! Идем в любую крупную контору, напрашиваемся к ним джуниором! Пусть крохотная зарплата, пусть нет английского. Но на собеседовании просим тестовое задание и старательно его делаем дома. А потом пытаемся показать, что у соискателя есть огромное желание, потенциал и он это все реализует вот в этой фирме. Начнет с малого и будет кропотливо разбираться во всех задачах и в программировании. Пусть даже год будет на копейках сидеть и получать учебные проекты, но должен все это осилить и добиться успехов. А на собеседовании работодатель должен увидеть не смущенного новичка, который "хотел бы попробовать стать программистом", а уверенного человека, который пришел сюда, "чтобы стать программистом". В моем случае просто помогало то, что я успешно проходил все тестовые и ничего не преувеличивал. Вот умею такое-то и умею учиться самостоятельно. Английский знаю, но общаюсь на нем хреново, зато читаю за милую душу! Без словаря. Мануалы, даташиты какие угодно! В некоторых местах просили скрины моих программ. Предъявлял. Ничего там не было особенного, но всех соперников нафик, я один и теперь только меня и ждут. Но так было не всегда. Были взлеты и падения. Главное, не бояться! А если уже на работе оказались то ни в коем случае не косячить! И быть предсказуемым. Работа может быть коллективная, стараться все в срок делать и не быть слабым звеном. И быть готовым к тому, что придется делать такое, что волосы зашевелятся от ужаса. Задачи, которые никогда не решались, да еще и на незнакомом языке программирования. Руководство посмотрит, что все заняты, а по проекту сроки большие, есть время поизучать! Вот дадут его новичку, но будут контролировать, чтобы видеть, что сроки не срываются и новичок движется в нужном направлении. Если не в нужном, то не страшно. Поправят и все будет ок... Последний раз редактировалось SeaMan75; 11.04.2018 в 16:38. |
|
|
2 пользователя(ей) сказали cпасибо: |
Johnny Cash (11.04.2018),
Sondzo (11.04.2018)
|
08.10.2020, 14:52 | #7 |
«Герой форума WM-Forum»
|
|
|
Пользователь сказал cпасибо: |
Johnny Cash (09.10.2020)
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написание отзывов: получается на этом заработать? | Flora | Варианты дополнительного заработка в интернете | 304 | 15.02.2023 15:02 |
Планы Минфина США могут поломать многочисленные сценарии | Владимир_R | Архив | 1 | 18.08.2017 09:12 |