Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Да-да, вы все правильно прочитали. Сегодня небольшая мотивационная история
Но, сперва краткая биография. Поехали!
using Writer = System.Console;
Writer.WriteLine("Привет, меня зовут Саша, я диктор канала...");
Шикарная подготовка
В 2018-м году, мне пришлось закончить школу, и начать думать об университете. С самого детства у меня была страсть к компьютерным играм, и очень хотелось из "делать". Поэтому выбрав направление программиста, я начал упорно готовиться к ЕГЭ по информатике и математике.
Подготовка прошла настолько хорошо, что по математике я набрал ровно проходной балл, по информатике на один выше проходного. Зато по русскому было 78 из 100.
Поступление в университет СахГУ
Сам я родом с Сахалина. Сахалин настолько странное место, что обучение в университете стоит как в Москве (900к), а берут туда на бесплатное обчуние по нарправлению "Прикладная информатика и математика" с моими результатами ЕГЭ без всяких вступительных тестов.
Университет - клевое место, в котором тебя загружают кучей бесполезной информации, заваливают на ненужных предметах и грозят отчислить. Сказать честно, меня хватило на 4 месяца обучения там, после чего отчислился, отчасти из-за семейных обстоятельств.
Времена застоя
На самом деле, у меня никогда не было какого-то математического склада ума, но была одна особенность - одержимость мечтой. 3 года я никак не касался программирования, и в итоге - забыл даже те крохи, которые когда-то знал.
Не было желания ничего делать, хотелось чтобы все пришло само. В тот период я не учился, работал курьером, и мечтал о собственной IT-компании.
Прозрение
В конце 2021 года у меня не стало нескольких знакомых... Мне вроде как 21, но я задумался. Ведь у меня есть мечты, ведь я очень хочу открыть собственную компанию, но ничего для этого не делаю.
Я сказал себе - надо действовать! Но у меня нет никаких знаний, нет знакомых, которые смогли бы помочь мне, нет денег на репетиторов, и нет, а самое главное, я зациклился на той мысли, что нет еще и большого количества времени.
Хочешь научиться? Научи сперва кого-нибудь!
Было принято решени - пора погрузиться в ускоренное обучение программированию. Первым шагом я набрал в гугле "Самоучитель по C#", и наткнулся на один интересный сайт по программированию, который и начал упорядочено изучать
Второй этап был сложнее - попробовать заработать на этом. Конечно, начинать расскидывать резюме и сидеть ждать оффера с нулевыми знаниями - выйгрышная стратегия, но я решил не идти по этому пути.
Я решил заняться репетиторством. Репетиторством с нуля, чтобы самому успевать разбирать темы, которые буду преподавать на занятии, и это имело успех. На второй неделе после публикации объявления я нашел первого ученика.
Не понимаю значение слова "Выходной"
Наступал новый год, все готовились, у всех была своя новогодняя движуха. Но мне было не до праздника, как никак в C# нет такого ключевого слова или же библиотеки, а потому я изучал то, что там было.
Знаете что я делал в новый год? Сидел в компании людей и не понимал, почему я трачу на это время, а не сижу и не самообразуюсь. Я поделился этим со своей девушкой, но она не поняла меня. С 1-го января я возобновил об
В течении всех 10 дней праздника я сидел и изучал программирование. Мозг кипел, сна становилось все меньше и значение слова "Выходной" стало мне непонятным. Дошло до того, что я начал интересоваться языком ассемблера и тем, как работает каждая часть компьютера, чтобы понимать, что я пишу в коде программы. Сейчас я хотя бы имею представление о том, как работает компилятор.
Общение со студентами
Совсем недавно я списался с бывшей однокурсницей. Сейчас она учится уже в Санкт-Питербурге, направление все то же "Прикладная математика и информатика". Разговор зашел о программировании, и я решил уточнить у нее, какие темы последние они затрагивали и вообще, чему их научили за 3 курса.
Каким же было мое удивление, когда я узнал, что она находится примерно на том же уровне, что и я, и одни из последних тем были принципы SOLID и паттерны проектирования.
Так же доводилось общаться с ребятами, которые учатся и в других университетах, примерно все одно и тоже, программа движется у всех относительно одинаково.
Конечно, они параллельно изучат еще и математику, и вообще, без математики ты не программист и так далее и тому подобное, окей, но мы говорим именно про программирование, когда понадобится математика - тогда заспидраню и ее.
Наши дни
Сегодня 18.01.2022 и пару часов назад я написал небольшой архиватор. Суть в том, что ты дропаешь в окно программы папку с файлами, после чего архиватор сохраняет его в у себя в папке tpm. При нажатии кнопки "Архивация" создается .zip-архив по первоначальному пути файла. Имя архива = имени директории.
За 5 часа я смог с нуля, без знаний работы с файлами, сделать это и понять как я это сделал:
Код конечно кривой, однако, я понимаю каждую его строчку (вроде)
Simple.Arc (code)
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.IO.Compression;
using System.Windows.Forms;
// Долго не мог написать клонирование из диров, в итоге получилось
//using Microsoft.VisualBasic.FileIO;
namespace WindowsFormsApp1
{
public class ArchivatePro
{
DragEventArgs dropedFile;
ListView listView;
ToolStripLabel label1;
private string tmpPath = @"..\tmp\";
public string fileFullPath_old;
public string fileFullPath_new;
public ArchivatePro(DragEventArgs e, ListView listView1, ToolStripLabel label)
{
dropedFile = e;
label1 = label;
listView = listView1;
Directory.CreateDirectory(tmpPath);
}
public void DropFileColoner()
{
try
{
bool firstCheck = false;
string[] filesInDir = (string[])dropedFile.Data.GetData(DataFormats.FileDrop);
foreach (string obj in filesInDir)
{
if (!firstCheck)
{
fileFullPath_old = Path.GetFullPath(obj);
fileFullPath_new = Path.Combine(tmpPath, Path.GetFileName(obj));
label1.Text = Path.GetFileNameWithoutExtension(obj)+".zip";
firstCheck = true;
}
Directory.CreateDirectory(fileFullPath_new);
DirChecker(obj);
}
}
catch (System.IO.IOException e)
{
//ничего не делаем
}
}
private void DirChecker(string obj)
{
try
{
foreach (string checkDir in Directory.GetDirectories(obj, "*", SearchOption.AllDirectories))
{
Directory.CreateDirectory(checkDir.Replace(obj, fileFullPath_new));
listView.Items.Add(checkDir);
}
foreach (string checkFile in Directory.GetFiles(obj, "*.*", SearchOption.AllDirectories))
{
File.Copy(checkFile, checkFile.Replace(obj, fileFullPath_new), true);
listView.Items.Add(checkFile);
}
}
catch (Exception e)
{
//ничего не делаем
}
}
}
}
Что дальше?
У меня большие планы. В первую очередь я хочу пробовать начать выполнять тестовые занятия к вакансиям, размещенным, например, на ХедХантере.
Конечно, я я знаю, что до оффера мне еще очень далеко, но мне кажется, что рано или поздно я его получу, главное просто никогда не останавливаться и не сдаваться.
Сейчас я каждый день провожу огромное количество времени в VS и за чтением документации. Планирую уже начинать осуществлять свою мечту и писать свое первое полноценное десктопное приложение для использования другими людьми. Но, скорее всего это приложение нужно будет лишь мне :).
Какие выводы?
Хочу сгруппировать и подвести итоги всего вышесказанного. Да советы могут показаться простейшими, однако мне они помогли
Не трать время зря. Если ты хочешь быстро изучить программирование - время твой главный и враг и союзник. Тут речь не о правильном тайм менеджменте, а об уделении всего "свободного" времени.
Погружайся с головой. Лично я представляю, что я начинающий Пол Ален, который в будущем напишет эмулятор альтаира 8800 пользуясь лишь одним руководством по программированию.
Не бойся и терпи. Ещё месяц назад от самой мысли о том, что я буду пытаться понимать и изучать что-то сложное у меня начинался суд по всему телу, а голова просто взрывалась. Мозг за три года совсем разленился.
Мечтай. Не просто представляй что-то невообразимое, а именно мечтай и иди к этому. Изучил что такое рекурсия? Почувствуй, что ты действительно молодец, и уже знаешь то, что большинство встречных прохожих не знают.
Забудь про "сходить выпить пива, пойти в клубешник, съездить к подруге". Если ты хочешь стать программистом - ты работаешь всегда, и не всегда за деньги. Твоя работа - постоянное самосовершенствование.
Конечно, слушать это все от человека, который изучает все это меньше месяца - сюр. Но давайте начнем с того, что каждый день я занимался этим от 12 часов и более. И вот, несложными вычислениями над операндами 12 и 21 возвращается около 250 часов занятий программированием, а это уже серьезно.